【发布时间】:2018-03-01 16:47:47
【问题描述】:
正如C++入门所说,我们不能使用变量作为内置数组的维度,所以下面的代码不起作用
int length = 3;
int array[length] = {0, 1, 2};
错误是
error: variable-sized object may not be initialized
但为什么下面的代码有效?
int length = 3;
int array[length];
【问题讨论】:
-
这是编译器的扩展,不是标准的 C++。
-
不要用 GCC 编译它。它将停止工作
-
将
-pedantic-errors添加到您的编译器标志中。也请输入-Wall -Wextra -Wfatal-errors。 -
@StoryTeller 我使用 clang++
-
@StoryTeller Wat?停止工作?
标签: c++ arrays variable-length-array