c++的动态申请内存

转载 2015年11月19日 17:10:35
//一维数组动态申请,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++提供了异常捕获类exception,我们可以用这类里面try,catch和through来捕获和抛出异常,也可以继承该类,自己定义异常。 语法为: #include "stdio.h" #in...

第六讲:c/c++复合数据类型struct以及联合类型union,动态内存申请malloc和calloc

关于复杂的变量类型——结构体的定义

关于C/C++动态申请空间释放和内存泄漏问题介绍

1. 动态申请空间1.1 基本内容  Ⅰ 动态申请的空间没有具体名称,只能通过指针间接访问(无论new还是malloc方式)。   Ⅱ 动态申请空间都是存放在堆中,有别于系统自动分配的空间是存放在堆...

C和C++中动态分配内存的区别

c是malloc和free, c++是new和delete,(C++面向对象的) 区别如下: (1)new、delete 是操作符,可以重载,只能在C++中使用。 (2)mal...

C++ Primer : 第十二章 : 动态内存之shared_ptr与new的结合使用、智能指针异常

shared_ptr与new的结合使用、智能指针异常
  • JY_95
  • JY_95
  • 2015-08-26 00:27
  • 1712
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)