C/C++程序内存分配

32bit总线可寻址2^32B地址,这是32位系统。上面是高地址空间,下面是低地址空间。1GB的内核空间,3GB的用户空间。内存空间分类(从上到下):内核区域,栈(执行空间),存储映射区(动态链接库等文件映射,mall...

32bit总线可寻址2^32B地址,这是32位系统。
上面是高地址空间,下面是低地址空间。
1GB的内核空间,3GB的用户空间。

内存空间分类(从上到下):
内核区域,栈(执行空间),存储映射区(动态链接库等文件映射,malloc调用mmap函数申请大内存),堆(动态申请的空间),BSS段(未初始化的全局变量以及静态变量),数据段(初始化的全局变量),代码段(包含常量字符串(只读)和二进制代码)。

分类方式不同有很多分法,这是比较全面的,很多时候容易把BSS和数据段合并,忽略掉存储映射区。

本文标题为:C/C++程序内存分配