C C 動態儲存分配

2021-10-07 20:40:15 字數 518 閱讀 2406

int

*p1 =

newint

;

int

*p2 =

newint(10

);

直接給這塊空間賦上初值,加個括號,括號裡寫10。

表示new了一塊int型別的空間,這個空間儲存了數字10。

把這個新的空間賦值給指標變數p2,也就是p2指標變數指向儲存了10的這個新分配的空間,p2儲存的是新分配空間的位址。指標p2示意圖如下圖所示。

關於指標的基本概念可以檢視此篇:[c/c++]c/c++中 *和&、指標和位址 的基本概念

delete p1;
new分配一塊空間,獲得這塊空間的基位址;

new獲得基位址,所以它必須賦值給乙個指標變數;

delete釋放空間。

動態儲存分配

動態儲存分配 在我們使用記憶體時,堆是一塊很大的記憶體塊,用於執行時分配一些小的儲存空間。c 中動態儲存分配用 new和 delete 分配完記憶體需要判斷分配是否成功 分配了新的記憶體空間,舊資料塊的資料拷貝到新的空間中,舊的記憶體需要釋放以便其他部分需要新記憶體塊的時候可以使用,如果沒有釋放就會...

動態儲存分配

malloc函式 void malloc size t n 分配n個位元組的記憶體單元,分配成功,返回記憶體單元的首位址。分配失敗,返回null。calloc函式 void calloc size t nmemb,size t size 分配nmemb個 每個大小為size 的記憶體單元,記憶體單元...

C C 動態分配

分配失敗,返回空指標 c 兩個函式malloc 與free 下面是 malloc 函式的宣告。void malloc size t size 返回的是void 無型別 指標,故需要對指標做轉換 size 分配的位元組數 include include include malloc 函式需要的標頭檔案...