一、静态二维数组
此代码所编译的为静态二维数组,定义了一个有row行col列的静态二维数组。
typedef int MazeType[ROWSIZE][COLSIZE];
typedef struct
{
int row;//行
int col;//列
}PosType;
二、动态二维数组
此代码为动态二维数组,定义了一个row行col列的动态二维数组。
typedef struct
{
int rowsize;
int colsize;
int **data;
}Array2D;
在这里如果row=5,col=10;
则data=(int**)malloc(sizeof(int*)*row);//初始化
for(int i=0;i<row;++i)
{
data[i]=(int*)malloc(sizeof(int)*col);
}
三、静态二维数组的内存分布
静态二位数组本生就是一个数组,因此他们的内存是连续的,maze是静态二维数组变量。
四、动态二维数组的内存分布
data指向二维数组首地址,data+1指向下一行的首地址,*(data+1)为解引用,*(data+1)+1指的是列值加1.