当前位置: 首页 > news >正文

new/delete与malloc/free的区别

背景:

malloc、free是c语言的库函数,是函数

new、delete是C++操作符,语言语法的一部分,编译器直接识别

// 操作符(语言内置) int a = 5 + 3; // + 是操作符 int b = a * 2; // * 是操作符 Base* obj = new Base; // new 是操作符 delete obj; // delete 是操作符 // 函数调用(需要函数名和括号) int c = add(5, 3); // add 是函数名 Base* obj2 = malloc(sizeof(Base)); // malloc 是函数名 free(obj2); // free 是函数名

1.new自动计算所需内存大小 ;malloc需要手动计算所需内存大小。

2.new返回对象类型的指针,delete获取对象类型的指针;malloc返回 无类型的指针void*

3.new是在free store上分配内存,malloc是在 堆 上分配内存

4.new在free store 上分配内存,malloc在堆上分配内存。

5.new会调用构造函数,new可以初始化;malloc只分配内存,不调用构造函数

http://www.jsqmd.com/news/90092/

相关文章:

  • 如何快速使用LRCGET:离线音乐批量歌词下载的完整指南
  • CardEditor卡牌批量生成工具:桌游设计师必备的10倍效率神器
  • Android FlexboxLayout布局革命:告别传统布局的束缚
  • WebLaTeX:彻底告别付费!免费LaTeX编辑器的完美解决方案
  • 零基础玩转AssetStudio:Unity资源提取实战手册
  • Android Studio中文界面终极配置指南:告别英文困扰,开启高效开发
  • 从零开始掌握Linux版哔哩哔哩客户端:完整实战指南
  • ThinkPad风扇控制终极指南:TPFanCtrl2实现Windows智能调速
  • 胡桃工具箱:原神玩家的终极桌面游戏革命
  • 零基础入门LumenPnP:开源贴片机让电子制造触手可及
  • 编程魔法:用11行代码打造动态旋转圣诞树
  • 5大核心技术:Flutter应用包体积极致优化实战
  • 网盘直链解析工具LinkSwift:解锁高速下载新体验
  • C# 面向对象
  • 深度掌控AMD Ryzen:终极硬件调试完全指南
  • 终极性能优化!Performance-Fish让《环世界》帧率飙升300%
  • 三步快速掌握Mammoth.js:Word转HTML的终极指南
  • Cursor AI Pro功能解锁工具:自动化注册与设备重置解决方案
  • SuperCom串口调试:高效解决嵌入式通信难题的完整方案
  • OpenRPA自动化实战:从入门到精通的完整指南
  • 一键解锁文本转图表神器:Draw.io Mermaid插件完全指南
  • 终极JavaScript天气组件集成指南:3种快速部署方案
  • 实战指南:开源USB MIDI驱动的跨平台音频解决方案
  • DAY 38 模型可视化与推理
  • 如何轻松实现微信小程序大文件上传?终极解决方案完整指南
  • MyBatisX插件
  • dify API访问工作流/聊天
  • Honey Select 2 HF Patch终极指南:从安装到精通
  • 阿里云盘Refresh Token扫码神器:3分钟轻松获取API密钥
  • TranslucentTB中文语言设置终极指南:快速解决界面显示问题