C動態記憶體開闢

2021-08-21 17:33:48 字數 1088 閱讀 3837

動態記憶體開闢:malloc calloc realloc

都是在堆上申請空間

一、malloc和free

void* malloc(size_t size);//動態開闢記憶體
#include 

#include

#include

int main()

; int* ptr = (int*)malloc(10 * sizeof(int));

if (null != ptr)

}free(ptr);

ptr = null;//若不設為null,則ptr雖還指向原位址,但其中的內容不能通過ptr去設定,所以稱此時的ptr為野指標

system("pause");

return

0;}

二、calloc

void* calloc(size_t num,size_t size);
#include 

#include

#include

int main()

free(p);

p = null;

system("pause");

return

0;}

三、realloc 對動態開闢記憶體的大小進行調整

void* realloc(void* ptr, size_t size);
#include 

#include

#include

int main()

else

int *p = null;

p = realloc(ptr, 1000);

if (ptr != null)

free(p);

system("pause");

return

0;}

動態記憶體開闢

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

動態記憶體開闢

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

動態記憶體開闢

1.記憶體分配方式 三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的 整個執行期間都存在。例如全域性變數,static 變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的...