我刚刚读到,Windows程序在函数入口调用_alloca来增长堆栈,如果他们需要超过4k的堆栈。 我guss,每当守卫页面被击中窗口为堆栈分配一个新的页面,因此_alloca访问堆栈在4k步骤分配空间。
_alloca
我也读到,这只适用于Windows。 如果不需要_alloca ,linux(或其他的)如何解决这个问题?
Linux依赖于大量优化的页面错误处理,所以会发生什么情况是程序只是把东西放在堆栈上,而页面错误处理器会动态扩展堆栈。