当前位置:网站首页>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 是函数,可以重写(覆盖)。
边栏推荐
- Integer to 8-bit binary explanation (including positive and negative numbers) scope of application -127~+127
- 数据库Mysql全部
- 5.Oracle-錶空間
- 达梦数据库全部
- *P++, (*p) + +, * (p++) differences
- 6-4 search by serial number of linked list
- Volcano resource reservation feature
- Qt项目中的日志库log4qt使用
- Mutual transformation between two-dimensional array and sparse array (sparse matrix)
- Find the combination number acwing 889 01 sequence meeting conditions
猜你喜欢
Find the combination number acwing 887 Find combination number III
1. Create Oracle database manually
‘mongoexport‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
Vant weave swipecell sets multiple buttons
5. Oracle TABLESPACE
SolidWorks template and design library are convenient for designers to call
MySQL (UDF authorization)
UTC, GPS time and Tai
All English in the code
【MySQL8.0不支持表名大写-对应方案】
随机推荐
Genesis builds a new generation of credit system
使用paping工具进行tcp端口连通性检测
How to answer when you encounter a jet on CSDN?
[tf] Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initial
NVM Downloading npm version 6.7.0... Error
H5 模块悬浮拖动效果
Volcano resource reservation feature
[Gaode map POI stepping pit] amap Placesearch cannot be used
2. Addition and management of Oracle data files
5. Oracle TABLESPACE
Using handler in a new thread
Game theory acwing 892 Steps Nim game
Log4qt usage of logbase in QT project
Positive height system
6-2 sequence table operation set
namespace
7.Oracle-表结构
June 29, 2022 daily
Rehabilitation type force deduction brush question notes D3
vim