C语言,结构体数组的长度

2024-11-29 18:44:51
推荐回答(2个)
回答1:

你用malloc或者是calloc函数分配即可。
int a = 10;
struct NODE
{
int value;
int next;
};

int main()
{
struct NODE *arr = (struct NODE*)malloc(a*sizeof(struct NODE));//请求获取内存
//
//程序的具体操作
//
free(arr);//用完后记得归还内存
return 0;
}
malloc给你分配a个大小为struct NODE的空间,也就相当于一个结构体数组,但是用完后要用free函数释放你想系统申请的内存。

对于申请长度可变的数组,只能动态分配,也就是使用malloc或者calloc函数分配。

回答2:

C语言不支持动态分配内存,你需要自己分配,大概这样
#include
#include
typdef struct Node
{
int value;
int next;
}Node;

int main()
{
int a;
scanf("%d",&a);
Node *p=malloc(a*sizeof(Node));
.......
}
这样p就相当于Node数组的第一个元素的指针,也可以当作数组名使用了。