在 C++ 程序中,内存分为 5 个区,分别是栈、堆、全局/静态存储区、常量存储区和程序代码区,程序中的各种数据都存储在这些内存区域中。
栈区(Stack)由编译器自动分配和释放,存放函数的参数以及局部变量。其分配运算内置于处理器的指令集中,效率很高。但是可使用的总量有限,一般不会超过 1M 字节。
堆区(Heap)中内存的分配和释放由开发者负责。一般用运算符 new 分配内存,并用运算符 delete 释放内存。一个 new 要对应一个 delete,否则会导致内存泄露。如果开发者没有释放,在程序结束的时候操作系统会自动回收。在堆上可分配的内存比栈上大了很多,且使用非常灵活。
全局/静态存储区中存放的是全局变量和静态变量。该存储区分配的内存在整个程序运行期间一直有效,直到程序结束由系统回收。
常量存储区中存储的是常量,通常不允许修改。在程序中定义的常量以及指针字符串都存储在这里。
程序代码区(Text Segment)用于存储程序的可执行代码。
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
添加我为好友,拉您入交流群!
请使用微信扫一扫!