C语言 自定义全局变量里面的结构体数组的长度 10
关于全局变量里的结构体数组是否可以自定义数组长度intn;structA{inta;charb[];}S[n+1];voidmain(){scanf("%d",&n);}...
关于全局变量里的结构体数组是否可以自定义数组长度
int n;
struct A
{
int a;
char b[];
}S[n+1];
void main()
{
scanf("%d",&n);
}
如何申请动态空间 展开
int n;
struct A
{
int a;
char b[];
}S[n+1];
void main()
{
scanf("%d",&n);
}
如何申请动态空间 展开
2018-03-25 · 知道合伙人互联网行家
关注
展开全部
你没有申请struct的空间,只是声明了啊,在main里加入:
student stu[10]; 就OK了
怎么可能不需要啊,你说链表中需要,那是肯定的
像这样,简单点说就是你把student看成是跟int,float,double一样的基本类型,这样你就会处理了,你认为int stu[10];这样的东西都不需要申请空间吗?如果不申请,那好比这样:
int *a;//这里只有个指针,并没有实际的空间
a=new int(10);这样才做了申请空间的动作;
以上2个语句何以:
int a=10;//这样便达到了上边2条语句的效果
但有一点不同就是new分配的是堆空间,这跟直接int i=10;不一样!
但效果是一样的!
如果是C语言的全局变量,这就不需要申请空间,全局变量生命周期在整个程序开始到结束!
student stu[10]; 就OK了
怎么可能不需要啊,你说链表中需要,那是肯定的
像这样,简单点说就是你把student看成是跟int,float,double一样的基本类型,这样你就会处理了,你认为int stu[10];这样的东西都不需要申请空间吗?如果不申请,那好比这样:
int *a;//这里只有个指针,并没有实际的空间
a=new int(10);这样才做了申请空间的动作;
以上2个语句何以:
int a=10;//这样便达到了上边2条语句的效果
但有一点不同就是new分配的是堆空间,这跟直接int i=10;不一样!
但效果是一样的!
如果是C语言的全局变量,这就不需要申请空间,全局变量生命周期在整个程序开始到结束!
追问
嗯我知道。但是我定义结构体数组需要定义在全局变量啊。我剩下的所有函数都需要写入这个结构体数组里面。
所以我想在main函数里面传入值来定义结构体数组的长度。可以实现吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询