一段动态内存空间存三种类型的数据
对malloc函数的运用
问题:开辟一段动态内存空间,存入学生的姓名,年龄和成绩
设有n个62字节的空间,前50字节用来存姓名,51-54用来存年龄,55-62用来存成绩即可
代码如下
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main(void){ 4 int n; 5 printf("请输入学生数:"); 6 scanf("%d",&n); 7 char * a=(char *)malloc(62*n); 8 if(a==NULL) 9 { 10 printf("内存分配失败"); 11 exit(-1); 12 } 13 for(int i=0;i<n;i++){ 14 printf("请输入第%d个学生的姓名年龄和成绩:\n",i+1); 15 scanf("%s%d%lf",a+62*i,(int *)(a+50+62*i),(double *)(a+54+62*i)); 16 } 17 for(int i=0;i<n;i++) 18 { 19 printf("%d %s %d %lf",i+1,(a+62*i),*(int *)(a+50+62*i),*(double *)(a+54+62*i)); 20 21 } 22 }

浙公网安备 33010602011771号