条款16:成对使用new和delete要采取相同形式

博客介绍了C++里new和delete的使用规则。使用new时先分配内存再调用构造函数,delete则先调用析构函数再释放内存。调用new时用[ ],delete也要用;反之则不用。还建议避免对数组形式做typedefs,可借助标准库减少数组需求。

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

当你使用new的时候,一是内存被分配(通过operator new函数),然后是构造函数被调用。当你delete的时候,析构函数被调用,然后内存被释放(通过operator delete)。

游戏规则:如果你调用new时使用[ ],你必须在对应调用delete时也使用[ ]。如果你调用new时没使用[ ],那么也不该在对应delete时使用[ ]。

为了避免诸如此类的错误,最好不要对数组形式做typedefs动作。因为C++标准库含有string,vector等templates,可将数组的需求降至几乎为0。

 

总结

  • 如果你在new表达式中使用了[ ],必须在想要的delete表达式中也使用[ ]。如果你在new表达式中不使用[ ],一定不要再相应的delete表达式中使用[ ]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值