C++程序内存分区

3 分钟阅读 220 字 + 437 词
参考答案
很多情况下,提到 C++ 程序的内存分区时,会简化为下面五个主要区域
  • Stack ): 用于 存储局部变量和函数调用的上下文 。栈的内存分配是自动的,由编译器管理。
  • Heap ): 用于 动态内存分配 。程序员可以使用 new malloc 等操作符或函数从堆上分配内存,并使用 delete free 释放内存。
  • 全局 /静态 存储区 Global/Static Storage ): 存储全局变量和静态变量 ,包括:
    • 数据段:存储 初始化的 全局变量和静态变量。
    • BSS 段 :存储 未初始化的 全局变量和静态变量。
  • 常量区 Constant Data ): 存储程序中的常量数据 ,如字符串字面量。此外,如果有 定义了虚函数,常量区还会存储虚表。
  • 代码段 Code Segment 或 Text Segment ): 存储 程序的可执行代码和函数的二进制指令