Effective C++学习笔记:条款3:尽量用new和delete而不用malloc和free

尽量不在C++中使用malloc和free,因为它们和new ,delete混用会导致错误发生概率大大增加。

string *stringarray1 =
static_cast(malloc(10 * sizeof(string)));

string *stringarray2 = new string[10];
第一句为stringarray1分配了容纳10个string对象的空间,但是并没有在内存里创建这些对象,
而第二句创建了一个含10个string对象的数组。
释放stringarray1的指针,要free( stringarray1);stringarray=null;释放
stringarray2的指针,要用delete []stringarray2;
malloc和free不涉及对象的构造和析构,只是简单的分配内存!
在c++程序里使用malloc和free没有错,只要保证用malloc得到的指针用free,或者用new得到的
指针最后用delete来操作就可以了。千万别马虎地把new和free或malloc和delete混起来用,那只
会自找麻烦。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值