您的位置:首页 > 编程语言 > C语言/C++

c++的动态申请内存

2015-11-19 17:10 288 查看
//一维数组动态申请,c数组大小为: n
int *c=new int
;

//二维数组动态申请,b数组大小为: n*p
int **b=new int*
;
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 *
;
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,以防继续访问已被释放的空间。这句可以不要。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++