栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ new和malloc delete和free的区别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ new和malloc delete和free的区别

C++ new和malloc delete和free的区别

在C++中, new 和 malloc都用于动态内存的申请, delete和free都用于动态内存的释放。而他们都有哪些区别?

new和malloc 1

首先,他们第一个区别就是new和delete是运算符,可以直接使用;而malloc和free是库函数,在使用前需要引入头文件。

因为new已经指定类型了,不需要进行类型强转,使用起来非常简单;而malloc函数的返回值是void*,在接收返回值时还需要进行类型强转,没有new来的方便。

new和malloc 2

第二个不同就是new除了可以申请动态内存外,还可以做内存初始化操作,而malloc是不支持初始化操作的。

new和malloc 3

第三个不同就是在内存申请失败时的处理方式。
malloc申请内存失败,是通过返回值是否是空指针来判断的;而new申请内存失败,是通过抛出bad_alloc类型的移除来判断的。

delete和free 1

在动态申请一个数组时,free释放内存直接把申请的数组的起始地址传进去即可;而delete在释放时需要加上[ ] :delete []

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号