1. ホーム
  2. c++

[解決済み] 引数として2次元配列を渡す

2022-02-26 04:56:23

質問

ポインタへのポインタを受け付ける関数に2次元配列を渡そうとしています。2次元配列はポインタへのポインタ(1次元配列へのポインタ)ではないことを知りました。以下のコードをコンパイルすると、このエラーが発生しました。

#include<iostream>

void myFuntion(int **array)
{
}
int main()
{
   int array[][]= {{1,2,3,4},{5,6,7,8,9},{10,11,12,13}};
   myFuntion(array);
   return 0;
}

関数 'int main()'内。 5行目: エラー: 多次元配列としての 'array' の宣言は、1次元目を除くすべての次元で境界を持つ必要があります。 Wfatal-errors により、コンパイルが終了しました。

どなたかこの件に関する私の疑問を解消していただけませんか?

どのように解決するのですか?

  void myFunction(int arr[][4])

最初の[]には任意の数字を入れることができますが、コンパイラはそれを無視します。ベクトルをパラメータとして渡す場合は、最初の1次元を除くすべての次元を指定する必要があります。