为什么g ++没有可变长度数组初始化

时间:2017-03-29 15:43:52

标签: c++ c++11 g++

我正在使用C ++ 11,这是一个示例代码片段,我无法理解该语言的内部工作原理。

这有效 -

int main(){
int n;
cin>>n;
int a[n]; // THIS WORKS due the the extensions

然而,这确实工作 -

int main(){
int n;
cin>>n;
int a[n] = {0} // This does not work;

我正在使用以下方法编译:

g++ -std=c++0x file.cpp -o file
  1. 我知道VLA不是C ++标准的一部分,GNU C ++通过编译器扩展提供它。
  2. 我也理解使用 alloca 在运行时分配内存。
  3. 我不明白的是,如果A有效,为什么B不起作用?

0 个答案:

没有答案