//一维数组动态申请,c数组大小为: n
int *c=new int[n];
//二维数组动态申请,b数组大小为: n*p
int **b=new int*[n];
for(int i=0;i<n;i++)
b[i]=new int[p];
//三维数组动态申请, a数组大小为: m*n*p:
int ***a=new int **[m];
for(i=0;i<m;i++)
{
a[i]=new int *[n];
for(j=0;j<n;j++)
a[i][j]=new int [p];
}
另外,当不再需要一个动态分配的多维数组时,可按以下步骤释放它所占用的空间。首先释放在for循环中为每一行所分
配的空间。然后释放为行指针分配的空间。
//一维空间释放:
delete []c;
c=0; //可在释放空间后将c置为0,以防继续访问已被释放的空间。这句可以不要。
//二维空间释放:
for (int i=0;i<n;i++)
delete []b[i];
delete []b;
b=0; //可在释放空间后将b置为0,以防继续访问已被释放的空间。这句可以不要。
//三维空间释放:
for (int i=0;i<m;i++)
{
for(j=0;j<n;j++)
delete []a[i][j];
delete []a[i];
}
delete []a;
a=0; //可在释放空间后将a置为0,以防继续访问已被释放的空间。这句可以不要。