逆向之程序堆棧

逆向之程序堆棧

計算機內存分佈

計算機內存:計算機內存分爲數據段、代碼段、堆段和棧段。

堆和棧在數據結構中是兩種不同的數據結構。兩者都是數據項按序排列的數據結構。

 

 棧

棧的定義:後進先出的數據結構。

棧的存取規則:後存放的先取先存放的後取,類似於取放在箱子底部的東西,首先要移開壓在它上面的物體

 

 堆

  • 堆的定義

堆是一種經過排序的樹形數據結構,每個節點都有一個值。通常我們所說的堆的數據結構是指二叉樹。

  • 堆的特性:

根節點的值最小(或最大),且根節點的兩個樹也是一個堆
堆常用來實現優先隊列,堆的存取是隨意的,類似於在圖書館的書架上取書,書的擺放是有序的,書的取出是任意的。

堆和棧存儲數據類型

棧的存儲數據類型:
棧是一個內存數組,是一個LIFO(last-infirst-out,後進先出)的數據結構,棧存儲3種類型的數據:分別是值類型變量的值;程序當前的執行環境;傳遞給方法的參數。

堆的存儲數據類型:
堆是一塊內存區域,在堆裏可以分配大塊的內存用於存儲引用類型對象,與棧不同,堆裏的內存能夠以任意順序存入和移除。

代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章