C语言如何动态定义结构体数组的元素个数?

结构体:
struct STUDENT{
int num;
char name[20];
char sex;
float weight;
};

struct STUDENT stu[N];//定义结构体数组,数量N是变量,具体值需要根据程序其他部分计算得到

编译时不允许N为变量,请问这种问题该如何解决?

谢谢!

第1个回答  2020-07-20
int n;
get(&n); //通过特定方法得到n
struct STUDENT *stu = (struct STUDENT*)malloc(sizeof(STUDENT) * n);追问

这样定义的stu指向一个长度为sizeof(STUDENT) * n的连续空间
而实际需要的是有多个元素的结构体数组
像您这样定义的话,stu引用的时候可以这样用么:
stu[0].num =
stu[1].num =
……

追答

可以

本回答被网友采纳