我写了一个简单的代码,我在其中创建没有固定大小的数组。我尝试在 gcc
中编译代码,它工作正常。请解释为什么应该在编译时知道这是有效的数组大小。
这是我用过的代码。
void f(int k)
{
int a[k];
.....//some operation
}
int main()
{
int i = 10;
f(10);
return 0;
}
最佳答案
此功能称为 VLA
或可变长度数组。并非所有 C 标准都支持这一点。在最近的 C 标准(如 C11
和 C99
)中,它受支持,但在较旧的 C 标准中不受支持,如“C89”。
如果您使用的是 gcc
,请查看 compiler documentation对此。
关于c - 数组大小应该在编译时已知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27265584/