无法转换Brace封闭的初始化列表

时间:2014-04-02 09:41:34

标签: c++ arrays variable-assignment

我宣布一个布尔表并在main()

中初始化它
const int dim = 2;
bool Table[dim][dim];

int main(){

     Table[dim][dim] = {{false,false},{true,false}};
     // code    
     return 0;
}

我使用mingw编译器,构建器选项为g++ -std=c++11。 错误是

  

无法将大括号括起来的初始化列表转换为' bool'在任务`

3 个答案:

答案 0 :(得分:5)

数组只能按照定义进行初始化,之后就无法进行。

将初始化移至定义,或手动初始化每个条目。

答案 1 :(得分:0)

首先,您尝试分配数组的具体元素,而不是分配完整数组。 其次,您只能将初始化列表用于初始化,而不能用于赋值。

这是正确的代码:

bool Table = {{false,false},{true,false}};

答案 2 :(得分:0)

您可以使用memset(Table,false,sizeof(Table))进行此操作。它可以正常工作。

这是您的完整代码

#include <iostream>
#include<cstring>
using namespace std;

   const int dim = 2;
    bool Table[dim][dim];

    int main(){

         memset(Table,true,sizeof(Table));
         cout<<Table[1][0];
// code    
return 0;
    }