天天看點

記憶體配置設定函數

記憶體配置設定包括

靜态配置設定:編譯時确定記憶體大小,不一定在編譯時配置設定,比如:局部變量放在棧裡.

動态配置設定:在編譯時不知道記憶體多大,在運作時動态配置設定。

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操作函數​​

繼續閱讀