有没有特别的原因在C ++资源中没有经常提到堆栈和堆?

问题描述 投票:8回答:2

在诸如“C#in a Nutshell”这样的书中,在堆栈和堆上分配的内容很快就会被引入。但是,诸如“使用C ++编程原理和实践”,标准和cppreference.com之类的C ++源代码从未提及有关内存分配的堆栈或堆 - 即使他们谈论存储持续时间/类时也是如此。为什么是这样?它是实现特定的,在所有编程语言之间分配的地方或使用堆栈是什么?如果后者是真的,我会理解缺乏对不同实体的分配范围的报道。

c++ memory-management stack heap
2个回答
17
投票

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

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

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


-1
投票

您感兴趣的不是关于C ++编程语言/标准的书,而是关于例如C ++标准库的实现。在那里,您将阅读有关堆栈/堆上的内存分配的更多信息。例如来自Nicolai M. Josuttis的“The C ++ Standard Library:A Tutorial and Reference”。

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

© www.soinside.com 2019 - 2024. All rights reserved.