百度面试题——malloc/free和new/delete的异同

相同点:
   malloc/free和new/delete都用来进行内存分配和释放。
不同点:
1、malloc/free是C++/C语言的标准库函数,而new/delete是C++的运算符。
2、采用malloc申请内存以字节为单位,且返回的内存类型为void *,因此赋予具体的类型时需要进行强制转换;而new则可根据需要的类型进行分配,并返回匹配类型的指针。
3、对于非内部数据类型的对象,采用maloc/free分配内存不会自动执行对象的构造和析构函数;而new/delete在分配和释放内存的时候同时执行对象的构造和析构函数以初始化内存。
4、new/delete可被重载来实现符合特定需要的内存分配,用户无需关心具体细节;而malloc/free只是库函数,分配和释放内存都需要自己维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值