【发布时间】:2011-12-13 14:05:17
【问题描述】:
我对栈/堆的有限理解是引用类型放在堆上(动态分配),值类型放在栈上。
理论上(如在理论机器、编译器、编程语言中),堆栈是必需的吗?不是所有的内存都放在堆上吗?
【问题讨论】:
-
这肯定会在调试中产生有趣的堆栈跟踪。堆栈不仅存储值类型,它还维护调用堆栈。
-
我建议你看看[this][1] [1]:stackoverflow.com/questions/79923/…
-
@David,没有内在的理由只有一个堆栈,数据和返回地址混合在一起。 FORTH 虚拟机定义了两个堆栈,一个用于数据,一个用于返回地址(以及一些非常专用的字,用于操作返回堆栈上的数据)。摩托罗拉 6809 有两个堆栈指针,基于知道谁可能参与了设计,我仍然怀疑设计者这样做是为了更容易在芯片上实现 FORTH。
标签: computer-science heap-memory stack-memory