news 2026/5/15 16:18:49

new/delete与malloc/free的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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只分配内存,不调用构造函数

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 9:02:08

原神帧率限制突破终极指南:从60到144的完美升级

原神帧率限制突破终极指南:从60到144的完美升级 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 还在忍受《原神》60帧的束缚吗?你的高性能硬件本应带来丝滑流畅的…

作者头像 李华
网站建设 2026/5/11 7:19:31

Android FlexboxLayout布局革命:告别传统布局的束缚

Android FlexboxLayout布局革命:告别传统布局的束缚 【免费下载链接】flexbox-layout Flexbox for Android 项目地址: https://gitcode.com/gh_mirrors/fl/flexbox-layout FlexboxLayout是Android开发中一款革命性的布局工具,它为移动应用界面设…

作者头像 李华
网站建设 2026/5/7 4:45:44

数据可视化神器DBeaver完整教程:从入门到精通

DBeaver是一款功能强大的开源数据库管理工具,支持多种数据库系统,为开发者和数据分析师提供了直观的数据可视化体验。本教程将手把手教你如何安装、配置和使用DBeaver,解锁数据管理的无限可能。 【免费下载链接】bilibili-linux 基于哔哩哔哩…

作者头像 李华
网站建设 2026/5/12 19:22:37

Nintendo Switch文件管理终极指南:NSC_BUILDER完整使用教程

NSC_BUILDER(Nintendo Switch Cleaner and Builder)是一款专为Nintendo Switch平台设计的全能文件管理工具,被誉为"Switch玩家的多功能工具"。这款开源工具基于hacbuild和Nut Python库开发,最初用于移除NSP文件的标题加…

作者头像 李华
网站建设 2026/5/12 1:41:58

LRCGET:智能批量歌词下载工具,让离线音乐完美同步

LRCGET:智能批量歌词下载工具,让离线音乐完美同步 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 在数字音乐时代,我…

作者头像 李华