【发布时间】:2021-07-20 00:43:51
【问题描述】:
我有一个与this one 密切相关的问题,不同之处在于我的代码示例没有使用new
我在这里重复这个问题:
C++ 之旅(第二版)的第 11 页上写着
数组的大小必须是常量表达式。
附近的例子表明他指的是 C 风格的数组,而不是 std::array。
所以如下:
int main(int argc, char **argv) {
double my_array[argc];
}
不应该编译,但是(GCC 9.3.0,g++ -std=c++17 -Wall)没有警告。
(这个问题在Are variable length arrays there in c++? 中有部分答案我没有找到它,因为我不知道/忘记了术语可变长度数组。下面我用我自己的答案来完成这个这个问题提供了一种强制 GCC 遵守当前 ISO 的方法。)
【问题讨论】:
标签: c++