ITPub博客

首页 > > > c++中malloc和new的区别

c++中malloc和new的区别

作者:founderwzh 时间:2020-01-10 15:36:56 0 删除 编辑

c++中malloc和new的区别


在c++中,依然支持从c继承过来的malloc和free,但是与new和delete的区别是:malloc是库函数,用malloc申请内存是对库函数的调用,不属于编译器管理的范畴,也就是说编译器无法控制其行为,使用malloc只是单纯的申请一块内存空间,不能调用自定义类型的构造函数。而new却是属于操作符,在编译器管理的范围之内。这样,当申请的内存类型为自定义类型时,如果用malloc申请,则不会执行该类的构造函数,因为构造函数的执行是由编译器执行的,而如果用new进行申请内存,则会执行该类的构造函数。同样free对于析构函数也是一样的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4605/viewspace-3119577/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: java面试题收集
请登录后发表评论 登录
全部评论

注册时间:2019-07-10

  • 博文量
    159
  • 访问量
    739