page contents

C中的 malloc 和C++中的 new 有什么区别

轩辕小不懂 发布于 2021-07-26 15:39
阅读 595
收藏 0
分类:C/C++开发
  • c
  • c++
  • 1418
    Nen
    Nen
    - 程序员

    malloc 和 new 有以下不同:

    new、delete 是操作符,可以重载,只能在 C++中使用。

    malloc、free 是函数,可以覆盖,C、C++中都可以使用。

    new 可以调用对象的构造函数,对应的 delete 调用相应的析构函数。


    malloc 仅仅分配内存,free 仅仅回收内存,并不执行构造和析构函数

    new、delete 返回的是某种数据类型指针,malloc、free 返回的是 void 指针。

    注意:malloc 申请的内存空间要用 free 释放,而 new 申请的内存空间要用 delete 释放,不要混用。因为两者实现的机理不同。

    请先 登录 后评论