工作原理
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()
;