wrdoct

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  42 随笔 :: 0 文章 :: 0 评论 :: 11508 阅读

new和malloc区别(8个)

(1)new和delete是C++的关键字/运算符,malloc与free是c++/c语言的标准函数

(2)malloc需要显式地指定分配的内存大小,new不需要。

(3)new操作符从自由存储区上为对象动态分配内存空间,而malloc函数从上动态分配内存。
【注】凡是通过new操作符进行内存申请,该内存即为自由存储区。

(4)new操作符内存分配成功时,返回对象类型,无须进行类型转换,故new是符合类型安全性的操作符;malloc返回void*,需要通过强制类型转换将void*指针转换成我们需要的类型。

(5)new操作符内存分配失败时,抛出bad_alloc异常;malloc内存分配失败时返回NULL

(6)new操作符有构造函数和析构函数,在开辟空间的同时,会调用自定义对象的构造函数来完成初始化;malloc只会开辟空间。

(7)malloc分配空间后,可以通过realloc扩张内存;new操作符则不能进行再次扩张内存的操作。

(8)new相对malloc效率要低,因为new的底层封装了malloc。

posted on   wrdoct  阅读(107)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示