32位系统中地址总线有32条,地址总线的个数决定了cpu的寻址能力。所以在创建一个进程时,操作系统为其分配2^32,即4G大小的空间。
下面是linux进程地址空间的布局
只读数据段:eg: char *p = "hello world";
数据段存储的是:已初始化并且初始值不为0的全局变量和静态局部变量。eg: static int data = 1;
bss段存储的是:已定义,但未初始化或初始化为0的全局变量和静态局部变量。eg: static int data = 0; static int data;