我已经检查过 SO 是否有一个简单的方法来解决这个错误。在另一台计算机上编译时我没有得到这个,但突然现在它没有在我的 PC 上编译。这是我得到的错误:
Error: Assigning to an array from an initializer list
这是代码:
int maze[12][12];
void print(bool playing);
int main()
{
printMaze(false);
playGame();
return 0;
}
void print(bool playing)
{
if (!playing) maze = {
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1},
{2, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1},
{1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 3},
{1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1},
{1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
{1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1},
{1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};
}
值得一提的是,我在同一行收到了警告:
Warning: Extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
我知道这显然意味着我必须使用这两个中的一个来使用扩展的初始化列表,但不知道如何解决这个问题。
编辑:
让 g++ 在设置中遵循 C++11 ISO C++ 语言标准会删除警告,但不会删除错误。