在C ++资源中不经常提到堆栈和堆是有特定原因的吗?

Dip*_*Dip 8 c++ heap stack memory-management

在诸如“坚果壳中的C#”之类的书中,在堆栈和堆上分配的内容很快就被介绍了。但是,诸如“使用C ++编程原理和实践”之类的C ++资源,该标准以及cppreference.com都从未提及有关内存分配的堆栈或堆-即使当他们谈论存储持续时间/类时也是如此。为什么是这样?它是特定于实现的吗,所有编程语言之间在堆栈和堆的使用方面分配的是相同的?如果后者是正确的,我会理解缺乏对不同实体分配位置的覆盖。

Bat*_*eba 17

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

这就是C ++书籍将使用标准术语自动动态存储的原因。

如果您正在阅读一本有关编译器设计和实现的书,那么您将完全希望获得有关堆栈和堆的全面介绍。

  • @Dip:因为“堆”是一个明确的C#语言概念。 (3认同)
  • @Dip:C ++故意不对它的内存模型说太多。这样,它可以在很多不同的机器上使用。尽管在这方面,C更加灵活。 (2认同)