面试中常被问到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区别的主要内容,如果未能解决你的问题,请参考以下文章