PS:
一维数组是指针,可将二维数组看作是指针的指针:每一行是一个一维数组,而列是指向行的指针。在动态创建时,先分配指向行的指针空间,再循环维每一行申请空间。
二维:
//创建
int **p;
p = new int*[x]; //行 //申请行的空间
//每行的列申请空间
for(i=0; i<x;i++)
{
p[i] = new int [y];
}
//释放内存
for(i=0;i<x;i++)
{
delete [] p[i];
}
delete [] p;
三维:
//创建
int *** p3 ;
p3 = new int**[hight ] ;
for( i = 0 ; i < hight ; i ++ )
p3[i] = new int*[row] ;
for( i = 0 ; i < hight ; i ++ )
for( j = 0 ; j < row ; j ++ )
p3[i][j] = new int[col] ;
//释放
for( i = 0 ; i < hight ; i ++ )
for( j = 0 ; j < row ; j ++ )
delete []p3[i][j] ;
for( i = 0 ; i < hight ; i ++ )
delete []p3[i] ;
delete []p3 ;