设为首页 加入收藏

TOP

21.3.1 申请堆内存
2013-10-07 01:15:34 来源: 作者: 【 】 浏览:67
Tags:21.3.1 申请 内存

21.3  堆内存管理

堆内存在运行时动态分配,分配函数是malloc()和运算符new,相应的释放函数是free()和释放运算符是delete。因此堆内存的生存期由程序本身来控制,使用上很灵活,但问题也最多。

21.3.1  申请堆内存

堆内存可以有两种申请方式:分配函数malloc(),分配运算符new。

1.使用malloc()函数

malloc()函数的原型如下:

  1. void *malloc(int size); 

该函数向系统申请size个字节的内存空间,返回类型是void型指针。在实际使用时,必须强制转换为需要的类型。

2.使用new运算符

new是一个运算符,它在编译时分配内存空间,形式如下:

  1. pointer=new type[n]; 

其中,pointer是type型指针,type[n]表示要分配n个type型的内存空间。如果分配只有一个type型内存空间,则不需要加"[n]"。

【示例21-8】 演示堆内存的分配方法。

  1. int *p1,*p2;                        //整型指针  
  2. p1=(int *)malloc(2*sizeof(int));    //分配2个int型的内存空间  
  3. P2=new int[2];                      //分配2个int型的内存空间 
分析:该示例中用两种方法给指针p1和p2分配内存空间。两种方法效果是一样的,都是动态分配2个字节的空间。所不同的是,malloc()是一个函数,而new是一个运算符。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇21.3.2 使用堆内存 下一篇21.2.3 释放栈内存

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: