关闭

c++的动态申请内存

标签: c++
88人阅读 评论(0) 收藏 举报
分类:
//一维数组动态申请,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,以防继续访问已被释放的空间。这句可以不要。
1
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1156次
    • 积分:73
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档