“堆”和“自由存储区”
来源:互联网 发布:xmt什么意思网络用语 编辑:程序博客网 时间:2024/06/06 04:20
“C/C++中的内存分为几个区?”
“通常分为5个区:堆、栈、自由存储区、全局/静态存储区、常量存储区”。“堆和自由存储区有什么不同吗?”
...
书上通常这么说:malloc/free在堆上申请和释放内存,new/delete在自由存储区上申请和释放内存。
堆(heap)C语言和操作系统的术语,堆是操作系统所维护的一块特殊内存,它提供了动态分配的功能,当运行程序调用malloc()时就会从中分配,调用free()归还内存。
自由存储区(free store)是C++中通过new和delete动态分配和释放对象的抽象概念,通过new来申请的内存区域可称为自由存储区,通过delete归还内存。
基本上,所有的C++编译器默认使用堆来实现自由存储,运算符new和delete内部默认是使用malloc和free的方式来被实现,这时藉由new运算符分配的对象,说它在堆上也对,说它在自由存储区上也正确。
说明:new和delete是运算符。
运算符可以重载,当new被程序员重载,且内部实现并非只有malloc()时,此时的内存空间就和堆不同了,这是一块组合的内存空间,C++中称为“自由存储区”,这是一个抽象的概念。
阅读全文
1 0
- 自由存储区和堆
- 自由存储区和堆
- 自由存储区和堆
- “堆”和“自由存储区”
- 堆、栈、自由存储区
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区
- 堆、栈、自由存储区、全局/静态存储区和常量存储区
- 堆、栈、自由存储区、全局/静态存储区和常量存储区
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区
- C++中的堆、栈、自由存储区、全局/静态存储区和常量存储区
- 堆、栈、自由存储区、全局/静态存储区和常量存储区
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区
- 堆、栈、自由存储区、全局/静态存储区和常量存储区
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区
- 堆、栈、自由存储区、全局/静态存储区和常量存储区
- 堆、栈、自由存储区、全局/静态存储区和常量存储区
- Ubuntu禁用临时客人会话
- Mybatis入门
- 1006. Sign In and Sign Out (25)
- python圣斗士修炼(八):小试牛刀
- StarUML破解方式
- “堆”和“自由存储区”
- 常用的web服务器都支持一定的并发用户数,这个并发用户数可以通过配置文件参数来进行配置
- js的动态绑定事件和静态绑定事件的this的指向
- Qt: QLineEdit圆角边框,选中时变色,显示图标
- 解决FastJson中“$ref 循环引用”的问题
- 二叉树的遍历
- Python IDLE 快捷键
- 一个著名的日志系统Log4j
- spark基础之RDD和DataFrame和Dataset比较