記憶體配置設定包括
靜态配置設定:編譯時确定記憶體大小,不一定在編譯時配置設定,比如:局部變量放在棧裡.
動态配置設定:在編譯時不知道記憶體多大,在運作時動态配置設定。
1.malloc函數
原型:void *malloc(size_t n)
n是配置設定記憶體的大小,傳回配置設定記憶體塊的首位址,配置設定失敗,傳回NULL.記憶體是由OS配置設定的。
傳回類型void *是指經過強制轉換可以指派給任何類型。
2.free函數
原型:void free(void * p)
p是malloc申請的動态記憶體首位址,是不能改變的,malloc與free成對使用,不能少用,防止出現記憶體洩露,也不能多用,free之後,p=NULL,可以防止野指針出現。
動态配置設定記憶體特點:
A.記憶體空間大小可以是一個變量,其值在運作時确定。
B.記憶體空間在運作時配置設定,在程式結束時回收,記憶體配置設定由OS參與完成
C.動态配置設定的記憶體空間在未釋放之前均可以被引用,保證其生命期.
記憶體配置設定函數類似的還有calloc ,realloc(參數裡的*p,一定是malloc,calloc,realloc之一得到的位址)
閱讀(800) | 評論(0) | 轉發(1) |
上一篇:标準I/O操作函數