C言語 : ダブルポインタと二次元配列

ダブルポインタと二次元配列は別物であるという認識

次のコードを見てみる.

int foo[2][3];
int **ptr;
ptr = foo;

printf ("foo[1][2] = %d\n", ptr[1][2]);

これはポインタの型が違うのに代入してますよといって, 警告が出る. しかし無視して実行すると, 今度はセグメント違反が出る.

なぜか? これを考える.

続きを読む