2010-07-30 70 views
2

在一些系统中,堆栈向上增长,而堆栈向下增长,在某些系统中,堆栈向下增长,堆栈向上增长。但是,哪一个是最好的设计?这两种特定设计中是否有编程优势?哪一种是最常用的,为什么它没有被标准化为遵循单一的方法?它们对某些特定场景是否有用/有针对性?如果是,他们是什么?堆栈增长和堆栈增长的方向

+0

这个功课? – NullUserException 2010-07-30 18:39:59

+0

不是。我一直在理解内存布局,这个查询弹出来了! – 2010-07-30 18:42:35

+0

一般来说堆不会增长 - 它只是您感兴趣的堆栈增长的方向,而这是特定于架构的。 – 2010-07-30 18:48:28

回答

0

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

0

也许它只是取决于处理器:如果它支持堆栈向上或向下?

1

堆只在非常幼稚的实现方向“增长”。正如Paul R.提到的,堆栈增长的方向是由硬件定义的 - 在Intel CPU上,它总是朝着更小的地址“即'Up'”