面试中常被问到new/delete和malloc/free区别

Posted AllenSquirrel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试中常被问到new/delete和malloc/free区别相关的知识,希望对你有一定的参考价值。

new/delete和malloc/free区别

(1)二者都是用来实现动态内存管理,内存空间的开辟(new,malloc)以及内存空间的释放(delete,free)

(2)malloc/free是C/C++标准库函数,new/delete是c++操作符

(3)malloc/free只是动态分配内存空间,释放空间,而new/delete除了分配空间还会调用构造析构函数进行初始化与清理

(4)malloc/free需要手动计算类型大小且返回值为void*  new/delete可自己计算类型的大小

(5)底层汇编角度,new/delete底层调用了malloc/free

  (6)  malloc/free申请空间后得判空,new/delete则不需要进行判空

(7)new直接跟类型,malloc跟字节数

以上是关于面试中常被问到new/delete和malloc/free区别的主要内容,如果未能解决你的问题,请参考以下文章

面试中常被问到(26)菱形继承及解决方法

Java面试中常被问到的几大技术难题

面试中常被问到的(24)网络分层及协议

面试中常被问到(25)map和pair区别

面试中常被问到c/c++区别

面试中常被问到封装继承多态知多少