C動態記憶體開闢函式總結

2021-08-20 06:27:50 字數 1103 閱讀 3259

void* malloc (size_t size);
malloc 函式向記憶體申請一塊連續的空間,並且返回指向這塊空間的位址。注意,malloc只負責動態開闢一段連續空間,並不負責這塊空間的初始化。

void

free (void* ptr);

free函式是專門用來做動態開闢記憶體的釋放和**。

int *arr[10] = ;

int *p =(int*) malloc(sizeof(int)*10); //為指標p開40位元組的空間

注意:

動態記憶體開闢的空間一定要free。如果不free的話會出現記憶體洩漏問題。

void* calloc (size_t num, size_t size);
有時我們會發現過去申請的空間太小了,或者太大了,為了合理的記憶體,需在原來的記憶體上調整大小,而realloc函式就能夠解決這一問題。

void* realloc (void* ptr, size_t size);
用realloc函式共有2種情況:

原來空間之後有足夠大的空間,這時候要擴充套件的記憶體就直接在原有記憶體之後直接追加,原來空間的資料不發生變化。

原有記憶體之後沒有足夠大的空間,這時候在堆空間上另外找一塊合適大小的連續空間,將原來記憶體的資料也拷到新記憶體中,這樣函式返回乙個新的記憶體位址。

C動態記憶體開闢

動態記憶體開闢 malloc calloc realloc 都是在堆上申請空間 一 malloc和free void malloc size t size 動態開闢記憶體 include include include int main int ptr int malloc 10 sizeof in...

動態記憶體開闢

記憶體分配有三種方式 1.從靜態儲存區分配,生命週期隨程式的結束而結束,比如全域性變數,static變數 2.從棧空間分配,函式呼叫完其被自動釋放 3.從堆空間分配,即動態記憶體開闢,比如 malloc,calloc,realloc,何時申請何時釋放 malloc 函式原型void malloc s...

動態記憶體開闢

記憶體分配有三種方式 1.從靜態儲存區分配,生命週期隨程式的結束而結束,比如說全域性變數,static變數 2.從棧空間分配,函式呼叫完成後被自動釋放 3.從對空間分配,即動態記憶體開闢,比如malloc,calloc,realloc malloc calloc realloc和free mallo...