双击一个程序让它运行时,操作系统(OS)会创建一个进程,该进程的进程实体由PCB(进程控制块,OS用来实现进程管理的必要信息)、程序段、数据段组成。
C语言编写的程序在使用内存时一般分为3部分,即正文段,数据堆区和数据栈区。
而正文段又称共享正文段,由程序代码区、常量区、全局/静态区组成。
所以总体来看,一个进程实体(即运行中的程序在某一时刻下的固定状态)所占用内存空间可分为以下几个部分:
- 内核使用区:PCB
- 栈区:系统分配存放函数的参数值,局部变量等
- 堆区:动态申请的地址
【注意:堆和栈共享一块内存空间(堆在内存空间的一端存放数据,栈在另一端存放数据)】 - 全局/静态区:编译时分配
- 文字常量区:存放常量字符串
- 程序代码区:存放函数体等



