gpt4 book ai didi

memory - 为什么堆栈会溢出?

转载 作者:行者123 更新时间:2023-12-01 14:49:08 27 4
gpt4 key购买 nike

好的。所以我对可执行文件在内存中的布局方式的理解是……想象一个方框,代表您的应用程序可访问的内存。

程序代码位于内存底部,堆栈分配到程序代码之外的位置并向上分配。堆从内存的顶部开始,向下分配。

如果是这样,为什么可以分配比堆栈内存更多的堆内存?

最佳答案

因为即使在具有大量可用虚拟内存的现代系统上,调用堆栈的最大大小通常也有意限制为 1MB。

这通常不是基本限制;可以修改它(例如在 Linux 中使用 setrlimit(),或在 Java 中使用 -Xss flag)。但需要这样做通常表示程序异常;如果您有大型数据集,它们通常应该存储在堆上。

关于memory - 为什么堆栈会溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10382922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com