在 C++ 资源中没有更频繁地提及堆栈和堆是否有特殊原因?

Is there a particular reason that stacks and heaps aren't mentioned more often in C++ resources?

在"C# in a Nutshell"等书籍中,栈和堆上的分配介绍得很快。但是,"Programming Principles and Practice Using C++"、标准和 cppreference.com 等 C++ 资源从未提及有关内存分配的堆栈或堆 - 即使在他们谈论存储时也没有提及 duration/classes。为什么是这样?它是特定于实现的,在什么地方分配了什么,或者所有编程语言之间堆栈和堆的使用是否相同?如果后者是真的,我会理解缺乏对不同实体分配位置的覆盖。

堆栈和堆不是 C++ 语言 概念(保留 C++ 标准库中的奇数函数),而是 实现 概念。

这就是为什么 C++ 书籍将使用标准术语 自动动态 存储。

如果您正在阅读一本关于编译器设计和实现的书,那么您完全可以期待关于堆栈和堆的全面散文。

您感兴趣的不是关于 C++ 编程的书 Language/Standard,而是关于 C++ 标准库等实现的书。在 Stack/Heap 上您可以阅读更多关于内存分配的信息。例如来自 Nicolai M. Josuttis 的 "The C++ Standard Library: A Tutorial and Reference"。

因为C/C++也可以在没有任何动态内存分配支持的平台上使用(对于某些嵌入式应用程序,编译器甚至禁止使用new和malloc),所以C++编程书籍中的参考资料不多.