new和malloc的区别

Posted jun10ng

tags:

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

属性

new/delete是C++关键字,需要编译器支持
malloc/free是库函数,需要头文件支持

参数

malloc需要指出所需内存的尺寸。

返回类型

new返回对象,malloc分配成功后返回void*

分配失败

new会爆出异常,malloc失败返回NULL

重载

delete可以重载

内存区域

new从自由存储区上为对象动态分配内存空间。自由存储区是一个抽象概念,基于new操作符,凡是new内存申请都从自由存储去抽取。
malloc从堆上分配空间。堆是操作系统维护的一块特殊内存,用于程序内存动态分配,自由存储去不位于堆内。

以上是关于new和malloc的区别的主要内容,如果未能解决你的问题,请参考以下文章

new和malloc的区别

malloc 和 new 的区别

new和malloc的区别

new和malloc的区别

C ++中的“new”和“malloc”和“calloc”有啥区别? [复制]

new和malloc区别