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,以防继续访问已被释放的空间。这句可以不要。

动态申请和释放内存

1.一维数组内存的动态分配和释放如下: int *array=new int [10]; //动态分配(例如分配10个单元的) memset(array,0,sizeof(array)); ...
  • yeepom
  • yeepom
  • 2013年03月23日 18:44
  • 1491

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

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

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

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

C++异常捕获和动态内存申请

C++提供了异常捕获类exception,我们可以用这类里面try,catch和through来捕获和抛出异常,也可以继承该类,自己定义异常。 语法为: #include "stdio.h" #in...
  • cfyzcc
  • cfyzcc
  • 2016年07月22日 16:44
  • 696

动态分区内存分配模拟C++

  • 2010年11月06日 12:55
  • 32KB
  • 下载

【C/C++开发】C语言 DLL(动态链接库)中申请动态内存释放的问题

参考:首先,声明一点,凡是使用malloc之类命令动态申请的内存,必须进行释放操作,否则就会发生内存泄漏问题。 DLL中申请的内存释放,如果没有做过,很可能会认为是直接在调用程序中释放就可以了,...

C和C++动态内存的申请与释放思考(动态多维数组空间分配)

这里分配内存以数组为例,这样就建立了一种思维,肯定离不开数组与指针的关系,这两者的关系是一个永远的话题,具体的可以参见我的这篇文章,是关于数组与指针的下来我们开始动态内存分配方法之旅吧! C语言的: ...
  • kai8wei
  • kai8wei
  • 2015年06月26日 18:13
  • 932

C++动态内存分配研究

  • 2010年05月31日 14:37
  • 89KB
  • 下载

Linux-(C/C++)动态内存分配malloc以及相关学习

1、C/C++内存分类(引用C++ Primer )(对象在C语言中可以理解为变量)    1.1、静态内存:静态内存用来保存局部static对象、类static数据成员、以及定义在任何函数之外的变量...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++的动态申请内存
举报原因:
原因补充:

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