我知道如何在函数内创建结构数组:
typedef struct item
{
int test;
};
void func (void)
{
int arraysize = 5;
item ar[arraysize];
}
但是当全局声明数组时,我该如何做:
typedef struct item
{
int test;
};
item ar[];
void func (void)
{
int arraysize = 5;
// What to here?
}
最佳答案
可变长度数组只允许在 C 中用于具有自动存储持续时间的数组。在文件范围内声明的数组具有静态存储持续时间,因此不能是可变长度数组。
您可以使用malloc
为编译时大小未知的数组对象动态分配内存。
关于c - 在运行时设置数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295786/