C语言如何动态定义结构体数组的元素个数?
结构体:structSTUDENT{intnum;charname[20];charsex;floatweight;};structSTUDENTstu[N];//定义结...
结构体:
struct STUDENT{
int num;
char name[20];
char sex;
float weight;
};
struct STUDENT stu[N];//定义结构体数组,数量N是变量,具体值需要根据程序其他部分计算得到
编译时不允许N为变量,请问这种问题该如何解决?
谢谢! 展开
struct STUDENT{
int num;
char name[20];
char sex;
float weight;
};
struct STUDENT stu[N];//定义结构体数组,数量N是变量,具体值需要根据程序其他部分计算得到
编译时不允许N为变量,请问这种问题该如何解决?
谢谢! 展开
1个回答
展开全部
int n;
get(&n); //通过特定方法得到n
struct STUDENT *stu = (struct STUDENT*)malloc(sizeof(STUDENT) * n);
get(&n); //通过特定方法得到n
struct STUDENT *stu = (struct STUDENT*)malloc(sizeof(STUDENT) * n);
追问
这样定义的stu指向一个长度为sizeof(STUDENT) * n的连续空间
而实际需要的是有多个元素的结构体数组
像您这样定义的话,stu引用的时候可以这样用么:
stu[0].num =
stu[1].num =
……
追答
可以
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询