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

本文对比了静态与动态内存分配的区别,并重点介绍了C++中如何使用new与delete进行动态内存管理。通过示例代码展示了如何申请及释放内存,强调了良好的编程习惯的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   动态分配内存是与静态分配内存相对的。当处理一个简单问题时,也许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;
}
       刚开始接触语言,最好先养成良好的习惯。否则,一旦深入将付出更大的代价。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值