GCC允许使用可变长度初始化数组

时间:2013-10-13 00:20:36

标签: c gcc variable-length-array

GCC编译以下功能

void f(int i)
{
    int a[i];
}

我的印象是你只能初始化长度恒定的数组。这应该编译,它会做我期望的吗?

2 个答案:

答案 0 :(得分:2)

C99添加了可变长度数组。并且gcc将其添加到c89作为带-std=gnu89选项的扩展名(默认为gcc)。

在最新的C标准C11中,可变长度数组支持被标记为可选。

答案 1 :(得分:0)

在C99中允许使用VLA。 GCC扩展允许它以C89模式编译。