参考:
http://blog.youkuaiyun.com/supermegaboy
http://topic.youkuaiyun.com/u/20091123/11/0c03d2e2-0655-4634-8287-0e2315d889fc.html
C语言中,指针和多维数组的关系最复杂,一般好难搞,其实,我就认一个死理由:
计算机内存本身是没有多维概念的,都是一维线性表,所谓的二维,三维都是从人的角度,逻辑划分出来的,
所以,假设要开一个二维数组,M*N,我一般是不会象楼主那样,搞的那么麻烦,
就直接一个malloc(M * N * sizeof(type))就可以了,
然后定义个数组指针 type (*p)[M] ,这样就可以访问它们的所有元素.简单实用。
这种方法也是可以的。就是个连续动态数组,内存映像是同一的,在逻辑上你如何看待这段内存都可以,
把它构造为一维、二维、三维、四维。。。。只要不越界,都没有问题。