我目前正在阅读 C ++ Primer Plus 。在第9章内存模型和命名空间的标题为自动变量和堆栈的部分中,作者讨论了程序如何通过 stack 管理自动变量。以及编译器如何更改默认堆栈大小。
该段带来很多混乱。我一直以为OS负责为正在运行的程序创建和管理过程映像,其中包括 stack 和 heap 。
挠头后,我有以下结论(不确定是否正确)和其他问题:
这是否还意味着在同一系统上运行的不同程序可以具有不同的堆栈大小?
原因是我认为进程是操作系统维护的结构,用户代码可能没有权限对其进行修改。忙碌,我们从不明确地编写这些例程。
但这只是纯粹的猜测。
我真的很感谢这个令人困惑的概念的帮助。
谢谢