为什么虚拟内存地址在不同的进程中是相同的?

Joh*_*ohn 4 c c++ windows virtual-memory

http://i.stack.imgur.com/RGMsz.png

我知道虚拟内存在Windows中分离2G(用于内核)/ 2G(用户).但为什么变量的地址不是连续堆栈?

喜欢0x22ff74,0x22ff78,0x22ff82,0x22ff86?这是否意味着Windows在用户进程中使用沙盒机制?

小智 14

这正是虚拟内存的本质.操作系统为每个程序提供自己的专用地址空间.实际上,操作系统负责将这些虚拟地址映射回物理地址空间而不需要应用程序知晓.

正如您所注意到的,这意味着两个应用程序可以在程序中的同一虚拟地址中拥有不同的数据.

了解更多关于虚拟内存的位置.