1. 程式人生 > >calloc(), malloc(), realloc(), free(),alloca()記憶體分配函式

calloc(), malloc(), realloc(), free(),alloca()記憶體分配函式

calloc(), malloc(), realloc(), free(),alloca()
記憶體區域可以分為棧、堆、靜態儲存區和常量儲存區,區域性變數,函式形參,臨時變數都是在棧上獲得記憶體的,它們獲取的方式都是由編譯器自動執行的。
利用指標,我們可以像組合語言一樣處理記憶體地址,C 標準函式庫提供了許多函式來實現對堆上記憶體管理,其中包括:malloc函式,free函式,calloc函式和realloc函式。使用這些函式需要包含標頭檔案stdlib.h。
四個函式之間的有區別,也有聯絡,我們應該學會把握這種關係,從而編出精煉而高效的程式。
在說明它們具體含義之前,先簡單從字面上加以認識,前3個函式有個共同的特點,就是都帶有字元”alloc”,就是”allocate”,”分配”的意思,也就是給物件分配足夠的記憶體,” calloc()”是”分配記憶體給多個物件”,” malloc()”是”分配記憶體給一個物件”,”realloc()”是”重新分配記憶體”之意。”free()”就比較簡單了,”釋放”的意思,就是把之前所分配的記憶體空間給釋放出來。