gpt4 book ai didi

c++ - 内存分配责任

转载 作者:行者123 更新时间:2023-11-30 01:26:31 25 4
gpt4 key购买 nike

我一直在思考这个问题,但还没有找到任何解释。

哪个模块决定应该分配多少内存给 C++ 程序?是操作系统决定编译器的推荐吗? ..链接器?

分配的内存中栈和堆的比例是多少?

最佳答案

对于不同的操作系统,答案是不同的。通常,可执行文件包含主线程所需的堆栈大小,由链接器放置在那里,这可能会被操作系统设置覆盖。操作系统设置可以通过一种或多种方式配置,可能是针对每个用户。一些操作系统不需要预先指定堆栈大小,它们可以在使用时添加堆栈,或多或少无限期地添加(直到达到硬限制或系统用完可用内存)。那些确实需要预先确定大小的那些可能最初只分配地址空间而不是内存,并且当堆栈到达那么远时将地址映射到内存。

堆通常不会预先分配,因此没有“堆栈和堆的比率”。分配给一个进程的总内存可能会或可能不会受到限制——如果没有,那么它可以达到系统资源允许的最大内存,或者在 32 位系统上可能会受到可用地址空间的限制。

关于c++ - 内存分配责任,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298519/

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