我想要达到的结果
C语言编程
涉及结构体嵌套和动态内存分配
结构体A内包含n个结构体B,这样的结构体A共有m个,采用malloc函数,最后可以通过"A[m].B[n].c"来写入或者读取。
请问如何编写?
C语言编程
涉及结构体嵌套和动态内存分配
结构体A内包含n个结构体B,这样的结构体A共有m个,采用malloc函数,最后可以通过"A[m].B[n].c"来写入或者读取。
请问如何编写?
#include <stdio.h>
typedef struct _Student
{
char name[20];
int num;
int score;
}Student;
typedef struct _Class
{
char classname[20];
Student *pStu;
}Class;
int main()
{
int m,n;
printf("请输入年级的班级数:");
scanf("%d",&m);
Class * grade = (Class*)malloc(sizeof(Class) * m);
for(int i=0;i<m;i++)
{
printf("请输入第%d个班级名:",i+1);
scanf("%s",grade[i].classname);
printf("请输入第%d个班级学生数:",i+1);
scanf("%d",&n);
grade[i].pStu = (Student*)malloc(sizeof(Student)*n);
for(int j=0;j<n;j++)
{
printf("请分别输入第%d个学生的姓名,学号和成绩(用空格分隔):\n",j+1);
scanf("%s%d%d",grade[i].pStu[j].name,grade[i].pStu[j].num,&grade[i].pStu[j].score);
}
}
return 0;
}