C++内存布局是老生常谈的话题,无论是笔试面试,都会涉及到该类问题,那么这一章节,我们就聊聊内存布局到底是怎么布局的,聊完之后我保证你仍然会回味无穷,并且我提供的几个例子也会让你再一步步踩入雷区。
C++程序的内存布局
C++的内存布局区域我们大体上分为四个:全局数据区(data area),代码区(code area),栈区(stack area),堆区(heap area)(或者叫自由存储区)。
以下是各个区的作用:
(1)代码区:存放程序代码,进程启动时进行初始化。
(2)数据区:在编译器进行编译的时候就为该变量分配的内存,即全局变量和静态变量,存放在这个区的数据程序全部执行结束后系统自动释放,声明周期贯穿于整个程序执行过程。全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域(.data)&#x