工作原理
malloc
是 stdlib.h
庫中的函數,聲明為 void *__cdecl malloc(size_t _Size);
-
原理:
malloc
函數沿空閑鏈表(位于內存 堆空間 中)申請一塊滿足需求的內存塊,將所需大小的內存塊分配給用戶剩下的返回到鏈表上;并返回指向該內存區的首地址的指針,意該指針的類型為
void *
,因此我們需要強制轉換指針類型; -
參數:
_Size
為要申請的空間大小,即需要顯式填入申請內存的大小,如n * sizeof(int)
; -
返回值:
malloc
分配內存失敗時返回NULL
指針,可以通過返回值判斷是否分配成功; -
malloc
并不會初始化所申請的空間;
free
也是 stdlib.h
庫中的函數,聲明為 void __cdecl free(void *_Memory);
-
free
函數會將用戶釋放的內存塊連接到空閑鏈上; -
參數:指針
_Memory
應指向由malloc()
分配的內存塊,其他方式聲明的內存不能用free()
;