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