delete会调用对象的析构函数,和new对应。free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。
对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。

该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处
本文章博客地址:https://cplusplus.blog.csdn.net/article/details/112599999

C++ new、delete、malloc、free关键字的关系相关推荐

  1. linux命令查找关键字前五行,linux下grep命令实现查找多个关键字(与关系和或关系)...

    grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用 ...

  2. C++/C语言申请动态空间的详解【new关键字、malloc关键字、delete和free关键字】

    文章目录 [1] C++ ->new关键字 [2] C语言->malloc关键字 [3]C++/C->delete和free关键字 [1] C++ ->new关键字 new: ...

  3. new delete malloc free

    1 // 2 int *y=new int; 3 *y=10; 4 5 //或 6 int *y=new int(10);//★ 7 8 delete y; 9 10 //★★★一维数组 11 12 ...

  4. new、delelte和malloc、free的关系

    为什么80%的码农都做不了架构师?>>>    malloc与free仅仅用于内存分配与释放:库函数,不在编译器权限内:new.delete会调用对象的构造和析构函数:运算符,编译器 ...

  5. C++:27---new delete malloc free

    上一节我讲了new和delete,有人问这不是和C语言的malloc/free为C的标准库函数差不多么 void* malloc(size_t size)//参数代表字节个数 void free(vo ...

  6. C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free

    内存分配方式有三种: [1] 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量, static 变量. [2] 在栈上创建.在执行函数时,函数内局 ...

  7. c语言标识符与关键字的关系,C语言关键字与标识符

    没有人有资格干涉你的梦想,同样的,也没有人有义务支持你的梦想.能让你坚持或放弃的,终究只有你自己. 标识符 只能以数字,字母和下划线组成,但第一个不能以数字开头.用户自己使用一般第一个也不用下划线(当 ...

  8. 一文解决new/delete与malloc/free相关问题:区别?注意事项?使用方式?

    目录 一.内存分配模型 1.1 先看内存的分布状况 1.2 动态内存分配 1.3 C语言中分配内存的方式 1.4 C++中动态分配内存的方式 二.new和malloc的区别 2.1 属性 2.2 参数 ...

  9. alter添加多个字段_Oracle中 create , alter , delete ,等关键字的使用

    Oracle中 create , alter ,drop, insert , delete , update 等关键字的相关使用; 关键字 : create , alter ,drop 主要是针对or ...

最新文章

  1. Js操作表格-对表格单元格的添加删除修改
  2. Spring - Java/J2EE Application Framework 应用框架 第 5 章 Spring AOP: Spring之面向方面编程G
  3. php二维数组json,php如何将二维数组转为json数据
  4. Rand函数使用和对补码的理解
  5. ————————C语言中快速排序方法——————————————
  6. [Java] 蓝桥杯BASIC-11 基础练习 十六进制转十进制
  7. vue 使用高德地图 获取坐标
  8. 支持HomeKit、NFC:智汀智能门锁SL1仅需要149元
  9. [密码学]对称密钥加密、非对称密钥加密和混合加密的基本原理
  10. java中socket学习_java的socket学习
  11. linux蜂鸣器驱动
  12. 双系统还是虚拟机 linux系统时间,mac装双系统好还是虚拟机好_mac装虚拟机好还是双系统-系统城...
  13. 解决scrapy下载小说乱序
  14. 我,是如何度过人生最艰难的时刻的
  15. 包看包会的变量与数据类型
  16. Linux目录文件操作命令篇--(工作常用命令的深度使用,小白必收藏)
  17. 用迅雷下载的视频,文件夹打开是空的,文件夹有大小,也没有隐藏文件的解决办法
  18. 2021年全球药用蘑菇提取物收入大约415.3百万美元,预计2028年达到649.7百万美元
  19. C/C++版本更迭历程
  20. 找不到 Web 地址对应的网页:_Web服务器的配置与管理

热门文章

  1. 求整数的位数及各位数字之和_如何判断正整数能否被7、4、8整除?(20年1月24日)...
  2. 给Java初学者的十条小建议,快来收藏吧
  3. 产品开发专业认证_食品招生季食品科学与工程专业介绍
  4. python中的单下划线和双下划线_python 里面的单下划线与双下划线的区别(私有和保护)...
  5. 123456789怎样运算等于1?答案可能很多,写个你最简单的方法
  6. Django框架深入了解_03(DRF之认证组件、权限组件、频率组件、token)
  7. pandas.read_html()读取网页表格类数据
  8. wxWidgets:事件和事件处理
  9. boost::proto模块实现简单的算术表达式求值器的测试程序
  10. boost::mp11::mp_rename相关用法的测试程序