我们申请n个字节的缓冲区,或申请一段内存时,这段内存是指物理内存还是虚拟内存(每个进程占4G空间,这4G=物理内存+虚拟内存。不知这样理解对不对?)请各位高手指点。

解决方案 »

  1.   

    申请一段内存时,一般分配的内存都是物理内存,当你在堆内分配内存比较大,而系统没有足够的内存时,操作系统会自动使用虚拟内存4G=物理内存+虚拟内存。这样理解不对!
    4G只是指在32位指针情况下能够访问到的最大内存范围,分成用户地址空间和系统地址空间,分别占据进程4G地址空间的高低2G
      

  2.   

    在Windows系统下,每个程序都“以为自己”享有4G的内存空间,而实际上内存的分配由操作系统完成。比如说程序A和程序B都在地址0x10000申请了一块内存块,但这两个内存块是被系统分配在不同的内存空间里的,至于是存在物理内存里还是虚拟内存也是由系统决定的。
      

  3.   

    在Windows系统下,每个程序都“以为自己”享有4G的内存空间,而实际上内存的分配由操作系统完成。比如说程序A和程序B都在地址0x10000申请了一块内存块,但这两个内存块是被系统分配在不同的内存空间里的,至于是存在物理内存里还是虚拟内存也是由系统决定的。