原型
void free(void *ptr) // 釋放ptr指向的存儲空間。
free能夠釋放calloc, malloc, realloc動態分配的空間,當你調用malloc、alloc分配內存時,不單單是從堆裏面分配獲得了可用內存,實際上內存管理子系統還維護了內存列表。函數
被釋放的空間一般被送入可用存儲區池。free()函數只是將參數指針指向的內存歸還給操做系統,並不會把參數指針置NULL。操作系統
內存這種底層資源都是由操做系統來管理的,而不是編譯器,編譯器只是向操做系統提出申請。指針
free函數並無能力去釋放真正的內存,只是通知操做系統它歸還了內存,而後操做系統就會修改內存分配表,對被free掉的內存從新進行管理,以方便下次分配。code
頭文件:
#include<stdlib.h>