動態陣列的實現

2021-06-22 18:26:31 字數 690 閱讀 6161

靜態陣列:編譯階段確定陣列的大小,執行階段不能改變陣列大小。缺點是事先無法準確確定陣列的大小,太小不滿足處理需要,太大浪費記憶體空間。

動態陣列:執行階段,根據實際需要動態確定陣列的大小。

在 c 語言中,可利用記憶體的申請和釋放庫函式,c語言培訓班 以及指向陣列的指標變數可當陣列名使用的特點,來實現動態陣列。

1、庫函式malloc()

①用法:void *malloc(unsigned size)。②功能:在記憶體的動態儲存區分配size 個位元組的連續空間。③返回值:申請成功,則返回新分配記憶體塊的起始位址;否則,返回null。

malloc()函式的返回值是乙個無型別指標,但在實際使用malloc()函式時,必須將其返回值強制轉換成被賦值指標變數的資料型別,否則出錯。

2、運算子sizeof

①格式:sizeof(變數名/型別名)。②功能:求變數/型別占用的記憶體位元組數。如sizeof(long)=4。

3、庫函式free()

①用法:void free(void *ptr)。②功能:釋放由ptr 指向的記憶體塊(ptr 是呼叫malloc() 函式的返回值)。③返回值:無。

一般情況下,使用malloc()函式申請的記憶體塊,操作結束後,應及時使用free()函式予以釋放。特別是在迴圈使用malloc()函式申請時,如果不及時釋放不再使用的記憶體塊,很可能很快就耗盡系統的記憶體資源,從而導致程式無法繼續執行甚至宕機。

動態陣列的實現

include dynamicarray.h 動態陣列初始化 dynamic array init array 插入 void push back array dynamic array arr,int value 插入新元素 arr paddr arr size value arr size 根據...

實現動態陣列

學過c語言的都知道陣列的長度在定義陣列時時固定的,不能在程式執行時發生變化,那麼動態陣列是否和以上的定義相違背?動態陣列的實現步驟 1.先使用malloc函式申請乙個足夠大的位址空間,並返回乙個指標作為首位址 2.將原有陣列的元素按照順序複製到新的位址中 3.將帶加入的元素加入到新的位址中並且時放在...

VC動態陣列實現

vc 動態陣列實現 陣列型別的變數有三個重要的限制 陣列長度固定不變,在編譯時必須知道其長度,陣列只在定義它的塊語句內存在.實際的程式往往不能忍受這樣的限制 它們需要在執行時 動態地分配陣列.雖然陣列長度是固定的,但動態分配的陣列不必在編譯時知道其長度,可以 通常也是 在執行時才確定陣列長度.與陣列...