動態記憶體開闢: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 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的...