定义非 constexpr 大小的数组时没有错误
No error when defining an array of non-constexpr size
可能的重复项:
在C++书中,数组绑定必须是常量表达式,但为什么下面的代码有效?
我在main()中执行此操作:
int i = 2; //not constant expression
int foo[i]; //no error?
这不会给我一个错误,因为它应该根据我的书。为什么?
(我在叮当3.1)
在启用严格警告的情况下编译它。
-pedantic
如果您使用 gcc,它会给您一个错误。
大多数编译器通过语言扩展支持可变长度数组 (VLA)。但是,C++语言标准不支持VLA作为语言的一部分。
ISO C99 中允许使用可变长度的自动数组...有关更多详细信息,请查看 http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Variable-Length.html#Variable-Length
相关文章:
- strncpy之后的char数组的错误行为
- 代码使用向量成功运行,但使用数组显示错误
- C++,数组有多少个地址?
- 将任意对象附加到数组有什么问题
- 我怎么能有一个以2D数组为参数的函数,而数组有一个我想更改的参数/维度
- 堆指针不会被分配给数组有什么原因吗
- 通过新的后传递后创建的动态数组的错误以调整函数
- 复制构造函数生成旧数组的错误副本
- 双维数组读取错误
- C/C++ 中的常量数组和静态常量数组有什么区别
- C++数组指针错误无法将“int*”转换为“int**”
- C++从函数返回的 2D 数组,错误:以非零状态退出
- 使用空指针数组时C++错误
- 在GCC中使用Brace Initializer初始化成员STD ::数组时错误
- 我的代码中的数组有问题.任何建议
- 数组函数错误输出
- 数组大小错误,c++ visual studio
- 具有基本结构的结构数组返回错误的答案
- 声明数组导致错误
- 返回并强制转换数组指针(错误:数组下标的类型..无效)