内存的管理
Window2000 Windows98
NULL指针分配分区 0x00000000~0x0000ffff 0x00000000~0x00000fff
MS-DOS/Win16兼容分区 无 0x00001000~0x003fffff
用户分区 0x00010000~0x7ffeffff 0x00400000~0x7fffffff
禁止访问分区(64K) 0x7fff0000~0x7fffffff 无
共享(MMF)分区 无 0x80000000~0xbfffffff
内核方式分区 0x80000000~0xffffffff 0xc0000000~0xffffffff
(上表资料来自:《Windows核心编程》)
===============================================================================
-----------------
高地址 | | ---> 命令行参数和环境变量 (只读)
-----------------
| 栈 |
|- - - - - - - -|
| | | |
| \ / |
| |
| |
| / \ |
| | | |
|- - - - - - - -|
| 堆 |
|---------------|
| 未初始化的变量|
| (bss) | ---> 由 exec 初始化为零
|---------------|
| 初始化后的变量| \
|---------------| |
| text(数据区)| | 由 exec 从程序中读取
| | /
|---------------|
低地址 | 代码区 |
|---------------|
===============================================================================
(见http://263.aka.org.cn/Lectures/002/Lecture-2.1.6/Lecture-2.1.6/proc.html
http://www.csdn.net/Develop/article/15%5C15747.shtm)