malloc/free不是可以申请内存吗?那为什么C++还需要弄个 new/delete 出来呢??

上传的附件
你的回答被采纳后将获得: 12点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 书中有代码有bug,进程伪装,不能在任务管理器上显示伪装后的路径 大数据 和 云计算 这两个概念有什么区别? : 下一篇keyboard_arrow_right

6个回答

Benjamin
2019-02-28 09:33:08

这两个应该作用都是申请内存吧?难道有区别?

Kanagawa
2019-02-28 11:22:24

肯定是有去别的!malloc/free是C语言的,new/delete是C++的

ilovehim
2019-02-28 15:16:19

对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。

对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。

由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。

BoyMeetsGirl
2019-03-01 09:42:53

由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数!

Jasmine
2019-03-01 23:28:23

用来申请内存啊

Mute
2019-03-02 09:50:14

一个是C语言的,一个是C++的,不一样啊

精彩评论

eject