動態記憶體分配

2021-07-26 23:40:29 字數 883 閱讀 8849

1、當你定義了乙個指標,而且要往裡面寫資料時,必須要動態分配記憶體給他。

2、動態分配的內存在堆上,你有權利決定什麼時候將他釋放掉。

3、動態分配的記憶體請記得一定要釋放掉,不然容易引起記憶體洩露。

1,new 分配記憶體

通用格式是:型別名 * 指標 = new 型別名;

如  int * pi = new int;

型別可以是基本資料型別、結構體、自定義類等

2,delete 來釋放記憶體

通用格式是:delete 指標名;

注意 delete 與 new 配對,只能釋放 new 分配的記憶體。

delete只能用一次,不能釋放指標兩次。

3,new 建立動態陣列

通用格式是:型別名 * 指標 = new 型別名 [ 陣列大小 ];

如 char * pc = new char [234];

pc 被賦值為第乙個元素的位址,指向第乙個元素

怎麼使用new和delete動態分配記憶體

4delete 釋放動態陣列

通用格式是: delete 指標;

怎麼使用new和delete動態分配記憶體

5new 建立的動態陣列,指標可當作陣列名來使用

如 float * pf = new float [200];

pf[24],是陣列的第25個元素的值,下標從0開始

怎麼使用new和delete動態分配記憶體

6new 和 delete 是c++中用來動態分配記憶體的,c語言使用 malloc 和 free

end注意事項

一般情況下,對於字串、陣列、結構體等大型資料,使用new可以節省記憶體空間,推薦使用

new 和 delete 配對,new 和 delete 配對,注意別弄錯了

動態記憶體分配

在c 中建立乙個物件時,我們必須要為這個物件申請一塊記憶體,而且要用建構函式對這塊記憶體進行初始化。c 中的new和delete相對於c的庫函式malloc和free在這方面有很大的優勢,所以我們主要講的是運算子new和delete。當用new來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...

動態記憶體分配

為什麼使用動態記憶體分配?c語言中的一切操作都是基於記憶體的 變數和陣列都是記憶體的別名,如何分配這些記憶體由編譯器在編譯期間決定 定義陣列的時候必須指定陣列唱的 而陣列長度是在編譯期就必須決定的 需求 程式執行的過程中,可能需要使用一些額外的記憶體空間 malloc和free malloc和fre...

動態記憶體分配

c的儲存類別有4種 自動的 auto 靜態的 statics 暫存器的 register 外部的 extern 全域性變數時分配在記憶體中的靜態儲存區 靜態區域性變數屬於靜態儲存類別,在靜態儲存區內分配儲存單元,是在編譯時賦初值的,只賦初值一次,在程式執行時它已有初值,以後每次呼叫函式時不再重新賦初...