当前位置:网站首页>new和malloc的区别
new和malloc的区别
2022-07-05 06:36:00 【一只嵌入式爱好者】
new和malloc的区别
1、new从自由存储区上分配内存,malloc从堆上分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用于程序的内存动态分配。那么自由存储区是否能够是堆(问题等价于new是否能在堆上动态分配内存),这取决于operator new 的实现细节。自由存储区不仅可以是堆,还可以是静态存储区,这都看operator new在哪里为对象分配内存。
2、new、delete 返回的是某种数据类型指针;malloc、free 返回的是 void 指针。
3、使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算;使用malloc则需要显式地指出所需内存的尺寸。
4、new 可以调用对象的构造函数,对应的 delete 调用相应的析构函数;malloc 仅仅分配内存,free 仅仅回收内存,并不执行构造和析构函数。在new一个对象的时候,首先会调用malloc为对象分配内存空间,然后调用对象的构造函数。delete会调用对象的析构函数,然后调用free回收内存。
5、new、delete 是操作符,可以重载;malloc、free 是函数,可以重写(覆盖)。
边栏推荐
- Dataframe (1): introduction and creation of dataframe
- PHY驱动调试之 --- PHY控制器驱动(二)
- Time is fast, please do more meaningful things
- Getting started with typescript
- Ffmpeg build download (including old version)
- Inclusion exclusion principle acwing 890 Divisible number
- MQClientException: No route info of this topic: type_ topic
- Xavier CPU & GPU high load power consumption test
- SRE核心体系了解
- Page type
猜你喜欢
cgroup_ memcg
Inclusion exclusion principle acwing 890 Divisible number
Pycahrm reports an error: indentation error: unindent does not match any outer indentation
1. Create Oracle database manually
Find the combination number acwing 887 Find combination number III
7.Oracle-表结构
Skywalking全部
Design specification for mobile folding screen
VLAN experiment
Find the combination number acwing 889 01 sequence meeting conditions
随机推荐
UIO driven framework
2048 project realization
Game theory acwing 891 Nim games
Redis-01.初识Redis
Speedtree01 generator properties
About vscode, "code unreachable" will be displayed when calling sendline series functions with pwntools“
如何正确在CSDN问答进行提问
使用paping工具进行tcp端口连通性检测
The problem of Chinese garbled code in the vscode output box can be solved once for life
All English in the code
1.手动创建Oracle数据库
Stack acwing 3302 Expression evaluation
Unity 之 ExecuteAlways正在取代ExecuteInEditMode
Application of recyclerview
Cookie、Session、JWT、token四者间的区别与联系
Preemption of CFS scheduling
Orin 两种刷机方式
MPLS experiment
时间很快,请多做有意义的事情
Use the Paping tool to detect TCP port connectivity