一段动态内存空间存三种类型的数据

对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 }

 

posted @ 2022-09-21 19:27  码羊  阅读(19)  评论(0)    收藏  举报