动态申请二维数组可以先申请一个一维数组,然后再将其按地址分割成数组:
如想申请一个row行col列的int 数组:
先申请一个row*col的in一维t数组 : int * pInt = new int[row*col];
再数申请一个指针数组,每个指针指向一行: int ** ppInt =new int*[col];
再调整该指针的位置:
for (int h=0;h<row;h++)
{
ppInt[h]=pInt+h*col;
}
具体如下:红色为使用malloc函数。
int ** D2Array(int row,int col)
{
int *pInt = new int[row*col];
//int *pInt = (int *)malloc(sizeof(int)*row*col);
int **ppInt =new int*[col];
//int **ppInt=(int **)malloc(sizeof(int*)*col);
for (int h=0;h<row;h++)
{
ppInt[h]=pInt+h*col;
}
return ppInt;
}
使用该方法创建的数组所有的元素在内存里是连续的
二、
首先申请一个