malloc/free和new/delete的区别

  • malloc/free和new/delete的共同点是:都是从堆上申请空间,并且需要用户手动释放。

  • 不同的地方是:

  1. malloc和free是函数,new和delete是操作符
  2. malloc申请的空间不会初始化,new可以初始化
  3. malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可
  4. malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型
  5. malloc申请空间失败时,返回的是NULL,因此使用时必须判空,new不需要,但是new需要捕获异常
  6. 申请自定义类型对象时,malloc/free只会开辟空间,不会调用构造函数与析构函数,而new在申请空间
    后会调用构造函数完成对象的初始化,delete在释放空间前会调用析构函数完成空间中资源的清理
  7. new/delete比malloc和free的效率稍微低点,因为new/delete的底层封装了malloc/free

molloc/free和new/delete的区别相关推荐

  1. Mysql之drop、truncate和delete的区别

    一.delete 1.delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表 ...

  2. 网页HTTP协议 get和post请求区别?(HTTP中Get、Post、Put与Delete的区别)

    文章目录 这篇也不错:浅谈HTTP中Get.Post.Put与Delete的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GE ...

  3. C++中delete和delete[]的区别

    一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete ...

  4. delete和delete[]的区别

    一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete ...

  5. 内存四区 malloc/free与new/delete的区别

    前言 之前写了一篇关于<快速排序的4种优化>的博文,当时在验证各种情况的时候忽略内存分配的问题,导致所得到的结果分析的不全面.因为在刚开始写程序的时候将数组声明在 main() 里面,这样 ...

  6. delete与delete[]的区别

    一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete ...

  7. 深度分析DROP,TRUNCATE与DELETE的区别【我的数据库之路系列】

    深度分析DROP,TRUNCATE与DELETE的区别[我的数据库之路系列] 转载自:http://hi.baidu.com/bjn_wuming/blog/item/8b27a9af36ef26f6 ...

  8. MYSQL基本知识:TRUNCATE和DELETE的区别

    目录 1.条件删除 2. 事务回滚 3. 清理速度 4. 高水位重置 MYSQL中TRUNCATE和DELETE都能够清理表中的数据,那它们的基本区别是什么呢? 1.条件删除 这个比较好理解,因为DE ...

  9. delete 和 delete[]的区别

    delete 和 delete[]的区别 从直观角度看,delete就是释放单个ptr对象指向的内存,delete[]释放连续多个ptr对象指向的内存; 释放单个对象内存: string* a = n ...

  10. drop、truncate和delete的区别

    drop.truncate和delete的区别 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TA ...

最新文章

  1. NYOJ 496 巡回赛 拓扑排序
  2. mysql navicat 函数_Navicat for MySQL 函数高级属性讲解
  3. jquery插件封装指南
  4. 微信小程序把玩(二十六)navigator组件
  5. mysql数据库查询优化建议_mysql数据库查询优化的24条建议
  6. Java对Internet为什么这么重要?
  7. 矩阵分解(MF)方法及代码
  8. gitignore文件的几种写法,Git忽略文件规则的配置方法
  9. 智慧城市大数据运营中心及城市大脑综合运行管理平台建设方案WORD
  10. 屏幕录像专家7.5注册机
  11. Steam如何打开控制台
  12. 数据结构银行排队系统c语言,数据结构银行排队系统实验报告
  13. adobe illustrator 绘制平行四边形
  14. springboot利用官方SDK(wechatpay-apache-httpclient)接入微信支付V3
  15. 深度学习(五):FastFCN代码运行、测试与预测
  16. Vue3状态管理库——Pinia
  17. java毕业设计健民中医药方网设计mybatis+源码+调试部署+系统+数据库+lw
  18. 忘记帝国cms后台登录密码和认证码如何找回
  19. Dell显示器改USB端口供电能力
  20. Linux下如何查看 CPU 信息, 包括位数和多核信息

热门文章

  1. python元类_Python中元类
  2. 电子计算机第一代到第四代,从第一代电子计算机到第四代计算机的体系结构都是由运算器、控制器、存储器、输入设备和输出设备组成的,称为( )体系结构。...
  3. oracle聚合字符串,Oracle 聚合字符串
  4. 设计模式(8)——外观模式
  5. tensorflow学习笔记(4)softmax分类和简单神经网络比较
  6. 图像超分辨率重构(一)原理及方法总结
  7. 上海中环C位出道,自动驾驶天团横「扫」北上广
  8. Adobe Reader 2019 Offline Installer, Free Download - Best PDF Reader
  9. bzoj 1604 奶牛的邻居
  10. 结队编程思路及感悟(python、tkinter、mysql、腾讯云短信等)