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++的,不一样啊

精彩评论

  • 同步IO和异步IO的区别是什么?
    同步的话,就相互等待、相互制约;异步的话,就各做各的,互不干扰
    2019-04-18 09:14:49 thumb_up( 1 )
  • 请问机器学习怎么入门?
    要学好数学啊
    2019-06-08 13:03:56 thumb_up( 3 )
  • 完成一个仪器管理系统
    改改就行
    2020-01-06 11:35:01 thumb_up( 1 )
  • 数据结构应该怎么学
    数据结构学好并不难,关键是多上机操作,一个算法你看上去很简单,其实里面的小细节很多,没有自己编译连接运行,有些问题你可能发现不了。其实对于语言,真的无所谓啦,用C也好,用C#也好,都能实现,关键是算法思想的理解和运用。我们老师说过一句话:编程语言不懂,你可以花一个月的时间把那门语言学的滚瓜烂熟,然后你就可以写程序了;而要是你编程思想不理解,哪怕你会一千种语言,也写不出好的程序。数据结构关键是学习算法的思路。慢慢学吧,肯定能行的!
    2019-11-13 22:17:41 thumb_up( 5 )
  • 完成一个仪器管理系统
    这个不是很简单吗?你可以用链表存储数据,然后就是对链表的插入、删除、修改、查询的操作而已了啊!
    2020-01-02 15:11:15 thumb_up( 3 )
  • 数据结构应该怎么学
    看视频、多动手实践、多思考
    2020-08-03 12:15:53 thumb_up( 1 )
  • 说说最近的感想吧(最佳答案不止一个)
    最近感觉挺好的,没什么特别高兴的事,也没什么很糟心的事。感觉平淡的生活才是最好的生活,人生最幸福的事就是有一个健康的身体,和睦的家庭,和平淡的生活。
    2020-06-13 20:02:15 thumb_up( 2 )
  • 自学Python语言,是看书好还是看视频好呢?
    视频和书结合看,书的话可以是电子书也可以是纸质版,书可以看《head first》,视频可以在哔哩哔哩里看免费视频。
    2020-08-03 18:31:12 thumb_up( 1 )
  • 同步IO和异步IO的区别是什么?
    等待。。。
    2019-03-07 09:02:41 thumb_up( 1 )
  • 实习生去那些公司更容易通过呢?
    我觉得还是要看你是什么方向吧,如果能力强而且实验室有关系的话肯定微软研究院呀。然后就是一些技术强的独角兽好进一些,比如无人驾驶的图森未来呀,或者计算机视觉的商汤科技呀,这种公司都是很有口碑很出paper的,而且还比较容易被招进去。
    2020-06-01 14:08:38 thumb_up( 2 )
eject