動態儲存分配

2021-08-20 09:42:44 字數 473 閱讀 6212

malloc函式:void *malloc(size_t n);

分配n個位元組的記憶體單元,分配成功,返回記憶體單元的首位址。分配失敗,返回null。

calloc函式:void *calloc(size_t nmemb,size_t size);

分配nmemb個(每個大小為size)的記憶體單元,記憶體單元初始化為0.

分配成功,返回記憶體單元的首位址。分配失敗,返回null。

realloc函式:void *realloc(void *ptr,size_t size);

將ptr指向的空間大小變成size指定的大小。

如果 ptr==null, 等同於malloc。

如果ptr後面有足夠連續的空間,那麼就擴充。

如果ptr後面沒有足夠連續的空間,釋放ptr的空間,新開闢乙個空間,空間的首位址賦給ptr。

free函式: void free(void *ptr);

釋放空間

動態儲存分配

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

靜態儲存分配和動態儲存分配

通常定義變數或者物件,編譯器在編譯時都可以根據該變數或物件的型別知道所需記憶體空間的大小,從而系統在適當的時候為他們分配確定的儲存空間,這種記憶體分配被稱為靜態儲存分配。有些操作物件只有在程式執行時才能確定,這樣編譯器在編譯時就無法為他們預定儲存空間,只能在程式執行時,系統根據執行時的要求進行記憶體...

動態儲存空間分配

include include include c 操作符new用來進行動態記憶體分配 他的值為乙個指標指向所分配的空間 c 操作符delete 用來釋放由操作符new所分配的空間 int y new int,y 10 或者int y new int 10 或者 int y y new int 10...