c++的动态申请内存

//一维数组动态申请,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,以防继续访问已被释放的空间。这句可以不要。
阅读更多
文章标签: c++
个人分类: c++ 基础
上一篇算法-动态规划
下一篇栈的应用-四则运算表达式的求值
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭