窗口栈和堆地址范围(Windows stack and heap address ranges)

2019-06-27 00:07发布

到现在为止使用Linux其中堆栈地址非常高,堆地址是相当低的(通过打印使用C程序堆和栈地址可以看到),我有一个Win32进程的内存布局的问题。 MWSDN是说,该堆栈地址比堆地址较高,但是从我的实践中看到,堆栈地址比堆地址更低。 所以,我很困惑。 有人请解释。

Answer 1:

嗯, stack addresses are higher than heap addresses -这是不正确的。 堆栈和堆在Windows上的进程的地址空间中的任何地方。

如果你开始大量的线程,使巨大的堆分配和加载的DLL数以百计的,你会发现,所有这些对象都均匀地绕在地址空间中传播。

此图为虚拟分配的在Windows上的典型的32位处理的结构。 绿色表示空闲区域,蓝色的东西进行分配。 活动大多发生在地址空间的开始,但在其他地址范围它存在也。



文章来源: Windows stack and heap address ranges