C言語で二次元配列を関数に渡して、関数内でも二次元配列としてアクセスしたくなったので、やり方を調べてみました。
二次元配列のポインタは
(*p)[]
でOKです。
サンプルコードをどうぞ
void hoge(int (*p)[3]) { printf("%d, %d, %d\n", p[0][0], p[0][1], p[0][2]); printf("%d, %d, %d\n", p[1][0], p[1][1], p[1][2]); } int main(void) { int a[2][3] = { { 1, 2, 3 }, { 4, 5, 6 }, }; int (*p)[3] = a; printf("%d, %d, %d\n", p[0][0], p[0][1], p[0][2]); printf("%d, %d, %d\n", p[1][0], p[1][1], p[1][2]); hoge(a); return 0; }