7 C/C++之malloc/free与new/delete的区别

本文详细对比了C++中的new运算符与C语言中的malloc函数。new创建的对象具有类型且能自动调用构造函数,失败时调用new_handler;而malloc返回void*,需手动转型,不调用构造函数,失败直接返回NULL。同样地,delete能自动调用析构函数,而free不能。
摘要由CSDN通过智能技术生成
  • new是C++运算符,而malloc则是C标准库函数。
  • 通过new创建的东西是具有类型的,而malloc函数返回的则是void*,需要进行强制转型。
  • new可以自动调用对象的构造函数,而malloc不会。
  • new失败时会调用new_handler处理函数,而malloc失败则直接返回NULL。
  • delete是C++运算符,free是C标准库函数。
  • delete可以自动调用对象的析构函数,而malloc不会。

-------C/C++知识持续发布中,如果能学到一点点知识,请收藏关注,共同学习进步--------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值