我写了一个简单的代码,我在创建没有固定大小的数组。我尝试在gcc
中编译代码并且它运行正常。请解释为什么这个工作数组大小应该在编译时知道。
这是我用过的代码。
void f(int k)
{
int a[k];
.....//some operation
}
int main()
{
int i = 10;
f(10);
return 0;
}
答案 0 :(得分:6)
此功能称为VLA
或可变长度数组。并非所有C标准都支持此功能。在最近的C标准中,例如C11
和C99
,它受到支持,但在较旧的C标准中却不支持'C89'。
如果您使用的是gcc
,请查看有关此问题的compiler documentation。