在某些系统中,堆栈向上生长,而堆向下生长,在某些系统中,堆栈向下生长,堆向上生长。但是,哪个是最好的设计?这两种特定设计中是否有任何编程优势?哪种是最常用的,为什么没有标准化采用单一方法?它们对某些特定情况有帮助/有针对性吗?如果是的话,他们是什么?
答案 0 :(得分:1)
在非常天真的实施中,只会向一个方向“增长”。正如Paul R.所提到的,堆栈增长的方向是由硬件定义的 - 在Intel CPU上,它总是朝向较小的地址“即'Up'”
答案 1 :(得分:0)
我已经阅读了Miro Samek和其他各种嵌入式大师的作品,似乎他们不赞成在嵌入式系统上进行动态分配。这可能是由于复杂性和内存泄漏的可能性。如果你有一个绝对不能失败的项目,你可能会想避免使用Malloc,因此堆会很小。其他非任务关键系统恰恰相反。我认为不会有标准方法。
答案 2 :(得分:0)
可能它只依赖于处理器:如果它支持堆栈上升或下降?