原型:extern void *malloc(unsigned int num_bytes);
用法:#include <malloc.h>
或#include <stdlib.h>
功能:分配長度為num_bytes字節的內存塊
說明:如果分配成功則返回指向被分配內存的指針,否則返回空指針NULL。
當內存不再使用時,應使用free()函數將內存塊釋放。
malloc的語法是:指針名=(數據類型*)malloc(長度),(數據類型*)表示指針.
[編輯本段]malloc()函數的工作機制
malloc函數的實質體現在,它有一個將可用的內存塊連接為一個長長的列表的所謂空閒鏈表。調用malloc函數時,它沿連接表尋找一個大到足以滿足用戶請求所需要的內存塊。然後,將該內存塊一分為二(一塊的大小與用戶請求的大小相等,另一塊的大小就是剩下的字節)。接下來,將分配給用戶的那塊內存傳給用戶,並將剩下的那塊(如果有的話)返回到連接表上。調用free函數時,它將用戶釋放的內存塊連接到空閒鏈上。到最後,空閒鏈會被切成很多的小內存片段,如果這時用戶申請一個大的內存片段,那麼空閒鏈上可能沒有可以滿足用戶要求的片段了。於是,malloc函數請求延時,並開始在空閒鏈上翻箱倒櫃地檢查各內存片段,對它們進行整理,將相鄰的小空閒塊合並成較大的內存塊。