2

我刚刚读到,如果 Windows 程序_alloca在堆栈上需要超过 4k 的空间,它们会调用函数入口来增加堆栈。我猜测每次访问保护页面时,windows 都会为堆栈分配一个新页面,因此_alloca以 4k 步访问堆栈以分配空间。

我还读到这仅适用于 Windows。如果不需要,linux(或其他ose)如何解决这个问题_alloca

4

1 回答 1

1

Linux 依赖于高度优化的页面错误处理,因此程序只是将内容推送到堆栈上,而页面错误处理程序将动态扩展堆栈。

于 2011-07-21T14:36:36.060 回答