Linux-C程序的存储空间布局

正文段

  指的是由CPU执行的机器代码,通常,正文段是可以共享的,执行的程序在存储器中只有一个副本。通常也是只读的,防止程序本身被修改。

初始化数据段

  数据段,被明确赋值的变量,比如全局变量

非初始化数据段

  程序开始执行前,内核将此段中的数据初始化为0或者空指针,比如出现在函数外的C声明。

  自动变量以及每次函数调用是所需保存的信息都存放在此段中。每次调用函数时,其返回地址、调用者的环境信息都存放在新分配的栈中。因此一个函数调用实例的变量改变不会影响另一个函数调用实例的变量。

  动态存储的分配。堆位于未初始化数据段和栈之间。

原文地址:https://www.cnblogs.com/dracohan/p/3798607.html