C++中free与delete的安全应用

C/C++中,我们经常对指针进行动态内存分配,当使用完毕后,则需要进行释放。
在C和C++中,内存的动态分配与释放有不同的方式

C:
C中没有对象的概念,所以内存分配只是简单的分配内存空间,释放亦然
使用malloc()函数分配,使用free()函数释放

C++:
C++中引入了对象的概念,使用new与delete关键字来进行内存操作。当使用new时,除了执行malloc()相关的内存分配以外,还会调用对象的构造函数;当使用delete时,除了执行free()相关的内存释放以外,还会调用对象的析构函数。
在C++中,对象指针即可指向一个对象,也能指向一个对象数组。当指向对象数组时,需要使用new[]和delete[]进行操作。执行new[]时,会调用每个数组成员的构造函数;执行delete[]时,会调用每个数组成员的析构函数。
使用new创建对象数组时,写作type *p = new type[NUM],而释放时可以写作delete p[]或delete[] p

但是,无论是free还是delete,当释放指针时,仅释放指针所指的内存空间与

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值