2010-07-30 87 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'」