美文网首页
C++中new与malloc的区别

C++中new与malloc的区别

作者: mingzhi618 | 来源:发表于2018-11-07 15:22 被阅读0次

    reference: https://www.cnblogs.com/QG-whz/p/5140930.html

    特征 new/delete malloc/free

    分配内存的位置       自由存储区                                     堆

    内存分配成功的返回值 完整类型指针                                   void*

    内存分配失败的返回值 默认抛出异常                                   返回NULL

    分配内存的大小       由编译器根据类型计算得出                     必须显式指定字节数

    处理数组               有处理数组的new版本new[]               需要用户计算数组的大小后进行内存分配

    已分配内存的扩充     无法直观地处理                               使用realloc简单完成

    是否相互调用           可以,看具体的operator new/delete实现   不可调用new

    分配内存时内存不足   客户能够指定处理函数或重新制定分配器         无法通过用户代码进行处理

    函数重载               允许                                           不允许

    构造函数与析构函数   调用                                           不调用

    相关文章

      网友评论

          本文标题:C++中new与malloc的区别

          本文链接:https://www.haomeiwen.com/subject/vcsvxqtx.html