C 學習筆記 使用New來建立動態陣列

2021-07-29 12:50:06 字數 795 閱讀 9673

1、如何使用c++的new運算子建立陣列

建立乙個包含10個int元素的陣列

int * psome = new int [10];
程式使用完new分配的記憶體塊時,應該用delete釋放

delete  psome;

使用new和delete時,應遵守以下規則:

1、不要使用delete來釋放不是new分配的記憶體

2、不要使用delete釋放同乙個記憶體塊兩次

3、如果使用new為陣列分配記憶體

4、如果使用new為乙個實體分配記憶體,則應使用delete(沒有方括號)來釋放

5、對空指標應用delete是安全的

例子:

#include #include int main()

輸出:

p3[1] is 0.5.

now p3[0] is 0.5 and p3[1] is 0.8.

解釋:指標變數p3  -->  陣列

p3[0] -> 占用1,2位元組的內容 -> 0.2

p3[1] -> 占用3,4位元組的內容 -> 0.5 

p3[2] -> 占用5,6位元組的內容 -> 0.8

由於p3+1,p3指向的位址發生偏移,因此

p3[0] -> 占用3,4位元組的內容 -> 0.5 

p3[1] -> 占用5,6位元組的內容 -> 0.8

p3[2] -> xx -> 未知

必須將p3-1,來能用delete釋放對應記憶體

使用new來建立動態陣列

使用new來建立動態陣列 1 如果程式只需要乙個值,則可能會宣告乙個簡單變數,因為對於管理乙個小型資料物件來說,這樣做比使用new和指標更簡單,儘管給人留下的印象不那麼深刻。通常,對於大型資料 如陣列 字串和結構 應使用new,這正是new的用武之地。例如,假設要編寫乙個程式,它是否需要陣列取決於執...

4 7 6 使用 new 來建立動態陣列

使用常規陣列儲存資料時,一般都是在程式編譯時就已經為陣列分配好了記憶體。如果儲存的資料未達到陣列的長度,就會導致很多記憶體閒置,致使效率較低。對於處理一些大型資料,我們就可以使用 new 進行動態記憶體分配。常規通過宣告來建立陣列,則在程式被編譯時就已經為它分配好了記憶體空間,不管程式最終是否使用陣...

C 用new來建立物件和非new來建立物件的區別

我們都知道c 中有三種建立物件的方法,如下 include using namespace std class a a int main 第一種和第二種沒什麼區別,乙個隱式呼叫,乙個顯式呼叫,兩者都是在程序虛擬位址空間中的棧中分配記憶體,而第三種使用了new,在堆中分配了記憶體,而棧中記憶體的分配和...