计算机中的堆、栈和静态存储区的区别
来源:互联网 发布:卸载oracle数据库11g 编辑:程序博客网 时间:2024/05/14 19:18
一个由C/C++编译的程序占用的内存分为以下部分:
1、栈区—由编译器自动分配释放,存放函数的参数值,局部变量的值等。
2、堆区—由程序员分配释放,即动态申请的区域,若程序员不释放,程序结束时可能由系统回收。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的。
全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
栈中:
由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空
间
堆中:
需要程序员自己申请,并指明大小,在c中malloc函数
如p1=(char *)malloc(size)
在C++中用new运算符
如p2 = new char[size]
但是注意p1、p2本身是在栈中的。
存取效率的话是在由系统自动申请和释放控制的栈效率更快。
1 0
- 计算机中的堆、栈和静态存储区的区别
- 静态存储区、堆和栈的区别
- 静态存储区、堆和栈的区别
- 静态存储区、堆和栈的区别
- 静态存储区、堆和栈的区别
- 静态存储区、堆和栈的区别
- 静态存储区、堆和栈的区别
- 静态存储区、堆和栈的区别
- 静态存储区、堆和栈的区别
- C++ 静态存储区、栈和堆的区别
- 静态存储区、堆和栈的区别
- 静态存储区、堆和栈的区别
- 动态存储区、静态存储区、堆和栈的区别
- 动态存储区、静态存储区、堆和栈的区别
- 程序中的栈、堆和静态存储区
- C++中堆和栈的区别,自由存储区、全局/静态存储区和常量存储区
- C++中堆和栈的区别,自由存储区、全局/静态存储区和常量存储区
- C++中堆和栈的区别,自由存储区、全局静态存储区和常量存储区
- 自定义径向基核函数
- 小程序里面的一段代码
- 面试题nio select底层实现机制
- 批量 insert into select 和 批量 replace into select
- Selenium3.0 文档——selenium.webdriver.support.abstract_event_listener
- 计算机中的堆、栈和静态存储区的区别
- OpenCV读取图像时Alpha通道的处理
- 好的图片下载网站
- MFC学习(六)MFC ActiveX 控件:添加自定义事件
- Java虚拟机-线程同步
- Openlayers之视图联动
- Caused by: org.xml.sax.SAXParseException: The prefix "aop" for element "aop:config" is not bound
- 创建Dialog样式的Activity,layout中layout_width设置为macth_parent后 无效的解决方法
- 内存缓存LruCache实现原理