Vla*_*rov 1 memory winapi process heap-memory stack-memory
到目前为止,我在使用 Linux 时,堆栈地址非常高,而堆地址非常低(通过使用 C 程序打印堆和堆栈地址可以看出),我对 Win32 进程内存布局有一个问题。MWSDN说堆栈地址高于堆地址,但从我在实践中看到的情况来看,堆栈地址低于堆地址。所以我很困惑。有人请解释一下。
嗯,stack addresses are higher than heap addresses
-这根本不是真的。堆栈和堆都可以驻留在 Windows 上进程地址空间的任何位置。
如果您启动大量线程,进行大量堆分配并加载数百个 dll,您会发现所有这些对象均匀分布在地址空间中。
下图显示了 Windows 上典型 32 位进程中虚拟分配的结构。绿色表示空闲区域,蓝色表示已分配某些区域。活动主要发生在地址空间的开头,但也存在于其他地址范围中。
归档时间: |
|
查看次数: |
3570 次 |
最近记录: |