C++内存存储区域简介

原创 2007年09月25日 20:37:00

---------------------------

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改。

---------------------------

在网上查找到的资料,特摘抄留于学习

相关文章推荐

C++内存存储区域的划分

C++内存存储区域划分 面试笔试常考    内存中对数据的存储不是杂乱无章的,而是有相应的划分,根据数据类型分门别类安放到相应的位置。    存储的区域由最高存储地址到最低存储地址依次为: ...

C++变量在内存中的存储区域

01 #include 0203 #include 04 using namespace std;05 int a = 0; // Initialization Area of Overall06 c...

程序内存情况及变量存储区域(转载)

一个程序在内存中的静态存放和动态运行过程中,数据存储的位置。 下面是转载的别人的一篇blog,感觉写的挺清楚的就转载了过来(http://www.cnblogs.com/yin-jingyu/arc...

内存存储区域的讨论

栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少;  堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长。  自己所编写的...

C语言程序的存储区域--内存布局

C语言程序的存储区域   由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程...

C语言变量存储区域 进程内存布局

C程序中,内存通常分为几个大区:共享存储区、栈区、堆区、全局静态区、文字常量区,此外还有程序代码区,其中,全局静态区又可以分为全局非初始化区和全局初始化区,从具体程序中来看,初始化和非初始化的全局OR...

C语言程序的内存布局(一)C语言程序的存储区域

第13章 C语言程序的内存布局 本章介绍C语言程序的内存布局结构,包括连接过程中目标程序各个段的组成和运行过程中各个段加载的情况。 在本章的学习中,读者应重点关注以下内容: C语言程序在内存中各...

C/C++变量存储区域

一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — ...

C++中各种类型的变量的存储区域和作用域

C++中各种类型的变量的存储区域和作用域 变量有:全局变量、静态全局变量、静态局部变量、局部变量。 按照存储区域分,全局变量,静态全局变量和静态局部变量都是存储在内存的静态存储区域的,局部变量存放...

C++应用程序性能优化笔记(一)——数据的存储区域

5种程序内存区:全局/静态数据区、常量数据区、代码区、栈、堆 全局/静态数据区存储全局变量、全局静态变量、局部静态变量。类的静态成员变量也存储在这个区域,且只有一份拷贝,所有对象共享。可以自己编程写...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++内存存储区域简介
举报原因:
原因补充:

(最多只允许输入30个字)