1

我写了一个简单的代码,我在其中创建没有固定大小的数组。我尝试编译代码gcc,它工作正常。请解释为什么在编译时应该知道这是有效的数组大小。

这是我使用的代码。

void f(int k)
{
   int a[k];
   .....//some operation
}

int main()
{
  int i = 10;
  f(10);
  return 0;
}
4

1 回答 1

6

此功能称为VLA可变长度数组。并非所有 C 标准都支持这一点。在最近的 C 标准(如 C11and C99)中,它受到支持,但在较旧的 C 标准中不支持“C89”。

如果您正在使用gcc,请查看有关此的编译器文档

于 2014-12-03T07:04:55.550 回答