int a[3] = { 1, 2, 3 };
int (*p)[3] = &a; // 赋值正确,p保存指向a的指针,是一个二维指针
p++; // 指针跑飞
*((*p) + 1) = 10; // stack smashing
int b[2][3] = { { 1, 2, 3 }, { 1, 2, 3 } };
int (*p1)[3] = b; // 赋值正确,p1保存指向b的指针,是一个二维指针
p1++; // 正确 此时p1指向b[1]即第二维数组
**p1 = 10; // 正确 a[1][0]被设置为10