// [2][3][4]
char (*p)[3][4] = (char (*)[3][4])malloc(2 * 3 * 4);
memset(p, 'a', 2 * 3 * 4);
p[1][2][0] = 'b';
p[1][2][1] = 'b';
p[1][2][2] = 'b';
p[1][2][3] = 'b';
for(int i = 0; i < 2; ++i)
{
for(int j = 0; j < 3; ++j)
{
for(int x = 0; x < 4; ++x)
printf("%c", p[i][j][x]);
}
}
老忘记,记录一下。为什么指向char [2][3][4]数组的指针不是char (*)[2][3][4]呢?想想指向一维数组的指针为什么不是char (*)[4]你就知道了,因为当你使用类似p[x][][]时,第一个[]定位p的位置!