您的位置:首页 > 其它

动态分配/撤销内存new和delete

2014-08-06 09:10 309 查看
动态分配内存是与静态分配内存相对的。当处理一个简单问题时,也许400字节的内存就够用了。那么这时静态动态分配都可以。那么当需要几百MB、甚至GB时,很显然静态分配这么大的内存,其开销太大了。如果不能全部利用其空间,就会造成内存的浪费,闲置不用。所以动态的分配内存,根据需要来分配大小。当一次性不能申请足够的内存时,可以分段的申请,进行处理,然后再申请,再处理,。。。最后再汇总。这给程序员很大的灵活性,有了灵活性就与管理它产生了矛盾。对于习惯了有gc垃圾回收功能语言的程序员来说,自己管理内存就是噩梦。

C++中使用new与delete配套。而取代了C语言的malloc与free函数。千万不要混合使用它们。先new再free或先malloc或delete。

动态申请一片内存:

new 类型 [初值]

int *tpMem = new int[10]; //申请一个数组

数组要用delete []tpMem; 来删除。

#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int *tpMem = new int(200);   //申请
*tpMem = 500;                //赋值
cout<<*tpMem<<endl;          //输出

//清理内存
if(tpMem){
delete tpMem;
tpMem = NULL;
}

printf("\n");
return 0;
}
刚开始接触语言,最好先养成良好的习惯。否则,一旦深入将付出更大的代价。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: