堆栈增长和堆增长的方向

时间:2010-07-30 18:37:35

标签: memory operating-system stack heap processor

在某些系统中,堆栈向上生长,而堆向下生长,在某些系统中,堆栈向下生长,堆向上生长。但是,哪个是最好的设计?这两种特定设计中是否有任何编程优势?哪种是最常用的,为什么没有标准化采用单一方法?它们对某些特定情况有帮助/有针对性吗?如果是的话,他们是什么?

3 个答案:

答案 0 :(得分:1)

在非常天真的实施中,只会向一个方向“增长”。正如Paul R.所提到的,堆栈增长的方向是由硬件定义的 - 在Intel CPU上,它总是朝向较小的地址“即'Up'”

答案 1 :(得分:0)

我已经阅读了Miro Samek和其他各种嵌入式大师的作品,似乎他们不赞成在嵌入式系统上进行动态分配。这可能是由于复杂性和内存泄漏的可能性。如果你有一个绝对不能失败的项目,你可能会想避免使用Malloc,因此堆会很小。其他非任务关键系统恰恰相反。我认为不会有标准方法。

答案 2 :(得分:0)

可能它只依赖于处理器:如果它支持堆栈上升或下降?