常見的記憶體分配

2022-05-12 13:44:09 字數 1060 閱讀 9118

動態記憶體分配函式的標頭檔案:

1.malloc 函式的使用方法

malloc 函式的返回值是新申請的記憶體空間的首位址,如果申請失敗,返回的是

null

。格式如下:

void *malloc(位元組數

2.calloc 函式的使用方法、

calloc 函式的格式:

calloc(n,size)

表示在堆區中申請n

個大小為

size

的記憶體空間;如果分配成功返回值是新申請的記憶體空間的首位址,如果申請失敗返回的是

null;  需要注意的是,calloc

申請成功後,會自動初始化。

3.realloc函式的使用

realloc函式的格式:

realloc

(指標變數p,size)

表示把指標變數p

所指向的記憶體空間的大小更改成

size.

需要注意的是:realloc

返回的是擴充套件後的空間的首位址!

擴充套件後的結果:

如果當前p

相鄰的空間有足夠大的位置,擴充套件後空間的首位址不變;

如果當前p

相鄰的空間沒有足夠大得位置,重新尋找一塊足夠大的空間,返回的值是新空間的首位址,並且把原來空間的值拷貝過來!

(當前p

相鄰的空間有足夠大的位置的例子

結果為:

(當前p

相鄰的空間沒有足夠大的位置,重新尋找一塊足夠大的空間,如下的例子)

其結果如下:

常見記憶體分配函式

1 kmalloc 核心函式 include void kmalloc size t size,int flags 最大為 128k void kfree void ptr kmalloc分配一塊物理空間和虛擬空間都連續,大小為size的記憶體。常用的flags標誌有 gfp atomic 用來從中...

記憶體分配筆記 記憶體分配概念和常見錯誤

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

常見動態分配記憶體分配函式

1.malloc函式的使用方法 void malloc unsigned size 其中size是指的分配記憶體的位元組 void malloc unsigned size 包含在庫函式 stdlib.h 中,作用是在記憶體的堆區分配乙個大小為size的連續空間,如果分配記憶體成功,函式返回新分配記...