當前位置:編程學習大全網 - 編程軟體 - 簡述棧式存儲管理策略

簡述棧式存儲管理策略

簡述棧式存儲管理策略:將整個存儲空間設計為壹個棧,每調用壹個過程就將它壓入棧。

在運行遞歸調用且每次調用都要重新分配局部變量的語言中,需要使用棧式存儲分配。幾乎所有的程序設計語言都使用如下三種類型的存儲環境:完全靜態環境、基於棧的存儲環境和基於堆的存儲環境的壹種或幾種。

從數據結構和系統兩個層次理解

在具體的C/C++編程框架中,這兩個概念並不是並行的。深入到匯編級進行研究就會發現,棧是機器系統提供的數據結構,而堆是由C/C++函數庫提供的。這兩個概念可以從數據結構和系統兩個層次去理解:

1、從數據結構層次理解,棧是壹種先進後出的線性表,只要符合先進後出的原則的線性表都是棧。至於采用的存儲方式(實現方式)是順序存儲(順序棧)還是鏈式存儲(鏈式棧)是沒有關系的。堆則是二叉樹的壹種,有最大堆最小堆,排序算法中有常用的堆排序。

2、從系統層次理解,棧是系統為運行的程序分配的先進後出的存儲區域。在學習bootloader時知道,在上電後初始化階段要為各個工作模式下分配堆棧,這裏的堆棧實際上就是指stack,堆棧的說法只是因為歷史的原因。

在執行函數時,函數內部局部變量的存儲單元可以在棧上創建(針對CISC架構而言,RISC架構下,局部變量的存儲單元是在寄存器上創建),函數執行結束時這些存儲單元自動被釋放。堆是系統管理的可以被程序利用的全局存儲空間,動態內存分配就是從堆上分配。

  • 上一篇:哪位大佬有逗妳學統編人教版小學數學三年級上冊同步學百度網盤資源
  • 下一篇:煙臺福海陽光花園小區周邊配套怎麽樣?
  • copyright 2024編程學習大全網