windows - 堆栈增长在 Windows 和 Linux 上如何工作?

标签 windows linux stack alloca

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

我还了解到这仅适用于 Windows。如果linux(或其他操作系统)不需要_alloca,如何解决这个问题?

最佳答案

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

关于windows - 堆栈增长在 Windows 和 Linux 上如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19501672/

相关文章:

php - 使用 PHP 将文件写入 Linux 的问题

java - 将字符串中的字符添加到堆栈中

c - 捕获信号时使 open() 返回

c - 创建 newNode 时没有从 createNode(int) 函数返回创建的节点

windows - 为什么堆栈低于内存中的文本?

c - 'st_blksize' : is not a member of 'stat' on Windows

php - 无法启动和运行 Wordpress

windows - 错误由于错误而停止(org.apache.kafka.connect.cli.ConnectStandalone)java.lang.NoClassDefFoundError : io/debezium/util/IoUtil

python - 我如何在 Windows 10 上安装 pyffmpeg

Linux原生aio仍需屏蔽