虚拟内存:
每个进程有自己的虚拟内存,进程内的线程只能访问该进程的虚拟内存,而无法访问其他进程的虚拟内存,也无法访问系统的内存。进程地址空间的划分如下:
(图5 - 1)
l 空指针:
0x00000000到0x0000FFFF的区间,线程访问该区间的地址,将会引发访问违规。注意,一个没有赋初值的指针不是空指针(在Debug下,默认值为0xCCCCCCCC,是属于内核区间的地址,也会引发访问违规;在Release下,则是一个随机的地址)。
l 用户模式区间:
在X86(32位)下,用户进程可用的地址空间大小为2G,系统可用的地址空间也为2G。在x64(64位)下,用户进程可用的地址空间大小为8T,剩余的地址空间为系统可用的地址空间。
X86下的3G用户内存模式:X86下,可设置用户内存空间为3G,系统内存空间为1G(即大内存模式,与此相关的设置参见