c 使用動態記憶體構建的陣列順序棧

2021-10-07 05:32:00 字數 942 閱讀 9805

棧是一種先進後出的結構

可利用陣列來構造乙個順序棧

最先開始編寫的**遇到的問題:

初始定義函式的引數沒有用指標,導致在主函式內的相關值並未改變。即在initstack呼叫後,cout;void

initstack

(stack a)

在這裡插入**片後經過改變,將區域性函式的引數變為指標,即可較好的完成任務。

#include

using

namespace std;

typedef

int elementtype;

#define stacksize 100

int increase=

100;

//順序棧的實現 (top標誌指向棧頂元素上乙個單位)

struct stack

;void

initstack

(stack *a)

bool

push

(stack *a,elementtype e)

a->st[a-

>top]

=e;(a-

>top)++;

cout<>top;

return

true;}

elementtype pop

(stack *a)

}bool

destroy

(stack *a)

elementtype gettop

(stack *a)

}bool

showstack

(stack *a)

if(i<

0) cout<<

"the end"

true;}

intmain()

}return0;

}

動態陣列構建與動態記憶體分配

1.靜態陣列的長度必須事先指定,且陣列長度只能是長整數,不能是變數。2.給靜態陣列分配的記憶體無法手動釋放,直到程式執行完畢,陣列占用的記憶體空間才會被系統釋放。3.陣列長度一旦固定,其長度就不能再更改。4.靜態陣列不能跨函式呼叫 為什麼需要動態記憶體分配?因為通過動態記憶體分配構建動態陣列很好的解...

C 動態記憶體使用

在c 中,直接對動態記憶體的管理是通過運算子new和delete來完成的。一 使用new動態分配和初始化物件的幾種方式 1.預設情況下,動態分配的物件是預設初始化的,故內建型別或組合型別的物件的值是未定義的,類型別物件將用預設建構函式進行初始化 int pi new int pi指向乙個動態分配的,...

C 動態記憶體和動態陣列

全域性物件在程式啟動時分配,在程式結束時銷毀。區域性自動物件,當我們進入其定義所在的程式塊時被建立,在離開塊時銷毀。區域性 static 物件在第一次使用前分配,在程式結束時銷毀 靜態記憶體用來儲存區域性static物件,類static 資料成員,以及定義在任何函式之外的變數。棧記憶體用來儲存定義在...