Term13:vector和string优先于动态分配的数组

        当你在写new T[N]的代码时,请一定要优先考虑使用STL中的vector容器orstring容器来代替你自己new的数组。可能你会问我为什么呢?

        Reason:当你决定用new来动态分配内存时,这意味着你将承担如下责任:

        ①:你必须确保以后会有人用delete来删除所分配的内存。如果没有随后的delete,那么你的new将会导致资源泄露。

        ②:你必须确保使用了正确的delete形式。如果分配了单个对象,则必须使用delete;如果分配了数组,则必须使用delete[]。如果使用了不正确(不配对)的delete形式,那么结果将是不确定的。(反正这样的程序就是不好的)

        ③:你必须确保只delete一次。如果一次分配被多次delete(重复释放heap区内存),结果同样是不确定的(但可以肯定的是,这样的程序必然会报异常!)

所有以后coding时,You'd better program like this:

int* ptr = new int[8]; change into vector<int> vec; vec.reserve(8);

char* ptr = new char[8]; change into string str;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fanfan21ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值