1. ホーム
  2. c++

[解決済み] コンパイルエラー - 配列の添え字の型が 'char[int]' でない。

2022-02-19 14:41:44

質問

行列計算をするプログラムを作っています。幸いなことに、コードのロジックがエラーを引き起こしているわけではありません。

私は以下のコードを使って、2次元配列に格納されている行列を出力しています。

void ouputMatrix(char arr[], int matrixRows, int matrixColumns) {

for (int a=0; a<matrixRows; a++) {
    for (int i=0; i<matrixColumns; i++) {
        cout << arr[a][i] << " ";
    }
    cout << endl;   
}
cout << endl;
}

しかし、このコードをコンパイルしようとすると、こう言われます。

関数 'void outputMatrix(char*, int, int)'において。 [Error] 配列の添え字の型 'char[int]' が無効です。

このエラーの種類は、私がc++の配列構文に関して何か明らかなことを見逃しているか、そのようなことを示唆しているのですが、私はそれを理解することができません。私は何を間違えているのでしょうか?

解決方法を教えてください。

問題は、多次元配列を関数に渡そうとしているのに、1次元配列の場合と同じ構文を使っていることでした。配列のサイズは100なので(私の質問から知ることはできませんが、すみません...)正しい渡し方は

void ouputMatrix(char arr[][100], int matrixRows, int matrixColumns);