【发布时间】:2011-03-06 04:54:29
【问题描述】:
为什么我会收到错误“可变大小的对象可能未初始化”的错误信息?
int boardAux[length][length] = {{0}};
【问题讨论】:
-
正如 David Rodriguez 在出色回答中指出的那样:如果长度是变量,则需要 memset,但如果长度是编译时常量,则该语句编译得很好。
-
到 2020 年——
enum {length = 0xF } ; int boardAux[length][length] = {0}; -
将其设为
const int为我解决了这个问题。 -
@MoteZart 做到了吗?给定
const int length = 1; int boardAux[length][length] = {{0}};boardAux是一个可变长度数组,而length不是 一个常量表达式。请记住,const仅表示只读;这并不意味着“恒定”。 (length是 C++ 中的常量表达式,不支持变长数组。)
标签: c compiler-errors initializer-list variable-length-array