malloc/free与new/delete

 

  malloc/free是c/c++标准库函数,new/delete是c++运算符。new/delete可以被重载。

  对于内置数据类型的对象而言,光用malloc/free完全满足动态对象的要求,此时malloc/free和new/delete完全等价。

  但对于其他对象在创建后要自动执行构造函数,在销毁前要自动执行析构函数,于是运算符new/delete可以产生了,不要企图用malloc/free完成动态内存的管理。

  malloc只关心分配内存的大小,不关注类型,调用free(p)后,p不会自动赋值为NULL,连续两次非NULL指针调动两次free()会导致程序运行出错。new内置了sizeof、类型转换和类型安全检查。

  new/delete的功能完全覆盖了malloc/free,但由于有时调用c函数的需要,malloc/free没被淘汰。

转载于:https://www.cnblogs.com/blogXiong/p/3503180.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值