C++中一般使用new和delete进行动态内存的分配
假设一维数组的长度为m,二维数组的长度是m和n,三维数组的长度是m,n和h
一、一维数组动态内存分配和释放
int *array1D;//使用一级指针声明一个一维数组
array1D = new int [m];//开辟m个整型变量
//释放
delete[] array1D;
二、二维数组动态内存分配和释放
int **array2D;//使用二级指针声明一个二维数组
array2D = new int *[m];
for (int i = 0; i < m; i++)
{
array2D[i] = new int[n];
}
//释放
for (int i = 0; i < m; i++)
{
delete[] array2D[i];
}
delete array2D;
三、三维数组动态内存分配和释放
int ***array3D;//使用三级指针定义一个三维数组
array3D = new int **[m];
for (int i = 0; i < m; i++)
{
array3D[i] = new int *[n];
for (int j = 0; j < n; j++)
{
array3D[i][j] = new int [h];
}
}
//释放
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
delete array3D[i][j];
}
delete array3D[i];
}
delete array3D;