簡體   English   中英

無法轉換Brace封閉的初始化列表

[英]Cannot convert Brace-enclosed initializer list

我宣布一個布爾表並在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'

數組只能在定義上初始化,之后就不能這樣做了。

將初始化移動到定義,或手動初始化每個條目。

首先,您嘗試分配數組的具體元素,而不是分配完整數組。 其次,您只能將初始化列表用於初始化,而不能用於賦值。

這是正確的代碼:

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

您可以使用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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM