C++ 内存模型学习笔记
C++ 内存模型从上(高地址)到下(低地址)可以分为以下几个部分:
-
栈区:由编译器自动分配释放,存放函数的参数值、局部变量的值等。
-
堆区:由程序员分配释放,若程序员不释放,程序结束时可能由操作系统回收。
-
全局/静态区:分为 .data 段(全局初始化区)和 .bss 段(全局未初始化区),.data 段存放 已初始化 了的全局变量和静态变量,.bss 段存放 未初始化 的变量。
-
常量区:就是 .rodata 段,存放常量。
-
代码区:存放函数体的代码。