关于内存管理:有没有特别的原因在C ++资源中没有更频繁地提到堆栈和堆?

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

在"简而言之"这样的书中,在堆栈和堆上分配的内容被很快地引入。然而,C++源,如"C++编程原理和实践"、标准和CPAPPRECENCE.COM从来没有提到堆栈或堆栈方面的内存分配-甚至当他们谈论存储持续时间/类。为什么会这样?在所有编程语言之间,堆栈和堆的使用是否都相同,是分配给特定于实现的?如果后者是正确的,我会理解在分配不同实体的地方缺乏覆盖范围。


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

这就是为什么C++书籍会使用标准术语自动和动态存储的原因。

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


您感兴趣的不是一本关于C++编程语言/标准的书,而是关于C++标准库的实现。在这里,您将了解更多关于堆栈/堆上内存分配的信息。例如"C++标准库:教程和参考",来自Nicolai M. Josuttis。

因为C/C++也可以在没有任何动态内存分配支持的平台上使用(对于某些嵌入式应用,编译器甚至禁止使用新的和MALOC),所以C++编程书籍里面没有太多的参考。