重複の可能性:
C で関数の引数として多次元配列を渡す
C で、関数が 2 次元配列を受け取るようにしたい場合、関数パラメーターに * 表記を使用できますか?
int (int my2dary[][10]); //This is what I do not want.
重複の可能性:
C で関数の引数として多次元配列を渡す
C で、関数が 2 次元配列を受け取るようにしたい場合、関数パラメーターに * 表記を使用できますか?
int (int my2dary[][10]); //This is what I do not want.
コンパイル時に配列のサイズがわからないことが問題である場合は、次のようにすることができます。
int func(int *array, int size)
{
int n,m;
...
array[m*size+n]; /* = array[m][n] if in the caller: int array[x][size]; */
}
オプションで(そしておそらくあなたが必要とする)、配列境界をテストできるようにするために2番目のサイズの引数(x)を渡すことができます
はい、int の配列へのポインターを渡します
int func(int (*my2dary)[10]);
そしてあなたはそれを呼ぶ
int a[5][10];
func(a);
ただし、 にfunc
含まれる要素の数がわからmy2dary
ないため、数値も指定する必要があります
int func(int n, int (*my2dary)[10]);
そして電話する
int a[5][10];
func(5, a);
複雑な C/C++ 宣言の解釈方法または「時計回り/らせんの法則」を参照してください。