C++面试复习日记(8)2025.4.25,malloc,free和new,delete的区别
1,malloc,free和new,delete的区别
答:malloc和free是c语言中库函数;
new和delete是c++的操作符;
分配内存:malloc和new
区别:
malloc:需要手动计算存储空间
new:自动计算存储空间
malloc:返回时,不带数据类型,返回void*,最后进行类型转换,返回参数类型,以字节为单位。可以用size of来计算所需内存。
new:直接返回对象类型的指针
malloc:分配失败,返回NULL值;
new:分配失败,执行异常
malloc:分配内存:虚拟内存;
new:分配内存:freestore上的物理内存;
释放空间:
free,delete:
free:需要对象类的指针:
delete:需要一个void*指针,前16字节直接存储着长度信息