搜档网
当前位置:搜档网 › c语言C++动态数组的创建与释放

c语言C++动态数组的创建与释放


一维数组动态内存分配和释放
int *array1D = new int [m]; //假定数组长度为m 动态分配空间
delete [] array1D; //释放
array1D = NULL;

对于多维数组动态分配,以常见的二维和三维数组为例来说明:
1. 二维数组的动态分配和释放
int **array2D = new int *[m]; //动态分配空间 假定数组第一维长度为m
for( int i=0; i{
array2D[i] = new int [n] ; //第二维长度为n
}
//释放
for( int i=0; i{
delete [] arrar2D[i];
arrar2D[i] = NULL;
}
delete [] array2D;
array2D = NULL;
2. 三维数组的动态分配和释放
int ***array3D; //假定数组第一维为m, 第二维为n, 第三维为h
//动态分配空间
array3D = new int **[m];
for( int i=0; i{
array3D[i] = new int *[n];
for( int j=0; j{
array3D[i][j] = new int [h];
}
}
//释放
for( int i=0; i{
for( int j=0; j{
delete array3D[i][j];
array3D[i][j] = NULL;
}
delete array3D[i];
array3D[i] = NULL;
}
delete array3D;
array3D = NULL;

相关主题