2017-12-30 215 views
-2

私のコンストラクタ内の2Dマトリクスを初期化しようとしていますが、これは私の要求に応じて変更されます。コンストラクタ内の2次元配列をC++で初期化する方法は?

class Player{ 
string pName; 
char playerBoard[ROW][COL]; 
public: 
    Player(string name){ 
     this->pName=name; 
     for(int i=0;i<ROW;i++){ 
      for(int j=0;j<COL;j++){ 
       this->playerBoard[i][j] = "."; 
      } 
     } 
    } 

しかし、私は次のエラーを取得しています

[エラー] 'CHAR' から 'のconstのchar *' [-fpermissive]

どれ代替方法への無効な変換これを初期化しますか?

+3

'this-> playerBoard [I] [J] = "";' 'でなければなりませんthis-> playerBoard [I] [J] = '';' – drescherjm

答えて

0

文字配列リテラル(const char *)をchar配列要素に割り当てようとしています。二重引用符を一重引用符に変更して、これが文字列リテラル(const char *で表されるnull終端されたC文字列)ではないことを示します。

class Player{ 
string pName; 
char playerBoard[ROW][COL]; 
public: 
    Player(string name){ 
     this->pName=name; 
     for(int i=0;i<ROW;i++){ 
      for(int j=0;j<COL;j++){ 
       this->playerBoard[i][j] = '.'; //<-chage this 
      } 
     } 
    } 
+0

どうもありがとう!それはうまくいった、私の最後には愚かな間違いだった。 – sourabh7

関連する問題