0

可能重复:
在 C++ 书籍中,数组绑定必须是常量表达式,但为什么下面的代码有效?

我在 main() 中执行此操作:

int i = 2; //not constant expression
int foo[i]; //no error?

根据我的书,这不会给我一个错误。为什么?

(我在铿锵3.1)

4

2 回答 2

6

在启用严格警告的情况下编译它。
-pedantic如果你使用 gcc,它会给你一个错误。

大多数编译器通过语言扩展支持可变长度数组 (VLA)。但是,C++ 语言标准不支持将 VLA 作为语言的一部分。

于 2013-01-27T14:26:43.323 回答
0

ISO C99 中允许使用可变长度自动数组...有关更多详细信息,请查看http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Variable-Length.html#Variable-Length

于 2013-01-27T14:30:36.053 回答