zoukankan      html  css  js  c++  java
  • C++ new 和malloc 区别

    1.分配地方不同,malloc是堆上面,new是自由存储区域

    2.malloc/delete是函数,new/delete是操作符,可以重载

    3.malloc 要指定大小,返回的是void*指针,开辟的是空空间,失败返回NULL

       new有类型检测,编译器会自动计算大小,还会初始化空间,返回的是类指针,失败抛出异常

       (int* p = new(std::nothrow) int;)可以避免抛出异常,返回NULL

    4.new底层是调用malloc来实现的

    5. new[] /delete[],一个个分配,一个个释放, 而malloc/free 处理数组的时候 一次处理完成,free(p),在p的前面1个内存地址存储需要释放的空间大小

    /////////////////////////////////////////////////////////

    malloc 的实现,有时间再更新。

  • 相关阅读:
    [SCOI2010] 生成字符串
    [NOIp2010] 机器翻译
    [CF792E] Colored Balls
    JS6-函数1
    JS6-字符串
    JS6-函数
    JS
    Bootstrap
    JQuery 自己的理解
    JQuery
  • 原文地址:https://www.cnblogs.com/sofard/p/9819712.html
Copyright © 2011-2022 走看看