>>110
int a[3][3] = {
 { 1, 2, 3 },
 { 4, 5, 6 },
 { 7, 8, 9 }
};

と

int a0[3] = { 1, 2, 3 };
int a1[3] = { 4, 5, 6 };
int a2[3] = { 7, 8, 9 };
int *a[3] = { a0, a1, a2 };

がメモリ上でどうなってるか考えてみれ。