陣列的動態分配與釋放

2021-06-14 09:24:25 字數 642 閱讀 2102

1、建立

new表示式返回指向陣列的第乙個元素的指標。例如:

//分配單個int型物件

//用1024初始化

int *pi = new int(1024) ;

//分配乙個含有1024個元素的陣列

//未被初始化

int *pia = new int[1024] ;

//分配乙個含有4x1024個元素的二維陣列

int (*pia2)[1024] = new int[4][1024] ; //二維陣列的第一維的值不可以省略不寫,陣列的第一維可以是常量,也可以是乙個在執行時、才計算出的值,但是第二位或者更高維必須是常量。

pi指向乙個int型的單個物件,初始值為1024.pia指向陣列的第乙個元素,該陣列有1024個元素。pia2指向乙個由4個1024個元素的陣列構成的陣列的第乙個元素---即pia2指向乙個由1024個元素的陣列。

一般的,在空閒儲存區上分配的陣列不能給出初始化值集。在空閒儲存區中建立的內建型別的陣列必須在for迴圈中被初始化,即陣列的元素乙個接乙個的初始化。例如:

for(int i=0;i

2、釋放

動態陣列的釋放也是使用delete表示式。例如

delete [ ] pia ;

方括號是必須的。

C多維陣列動態分配與釋放

寫 的時候會碰到多維陣列的記憶體分配和釋放問題,在分配和釋放過程中很容易出現錯誤。下面貼上一些示例 以供參考。如果要給二維陣列 m n 分配空間,可以寫成下面 char a,i 先分配m個指標單元,注意是指標單元 所以每個單元的大小是sizeof char a char malloc m sizeo...

記憶體動態分配與釋放

1 c語言的函式malloc和free 1 函式malloc和free在標頭檔案中的原型及引數 void malloc size t size 動態配置記憶體,大小有size決定,返回值成功時為任意型別指標,失敗時為null。void free void ptr 釋放動態申請的記憶體空間,呼叫fre...

記憶體動態分配與釋放

1 c語言的函式malloc和free 1 函式malloc和free在標頭檔案中的原型及引數 void malloc size t size 動態配置記憶體,大小有size決定,返回值成功時為任意型別指標,失敗時為null。void free void ptr 釋放動態申請的記憶體空間,呼叫fre...