C語言中malloc是動態內存分配函數。
函數原型:void *malloc(unsigned int num_bytes)。
參數:num_bytes 是無符號整型,用於表示分配的字節數。
註意:當內存不再使用時,應使用free()函數將內存塊釋放。函數返回的指針壹定要適當對齊,使其可以用於任何數據對象。關於該函數的原型,在以前malloc返回的是char型指針,新的ANSIC標準規定,該函數返回為void型指針,因此必要時要進行類型轉換。
實現malloc的方法:
首先我們要確定所采用的數據結構。壹個簡單可行方案是將堆內存空間以塊的形式組織起來,每個塊由meta區和數據區組成,meta區記錄數據塊的元信息(數據區大小、空閑標誌位、指針等等)。
數據區是真實分配的內存區域,並且數據區的第壹個字節地址即為malloc返回的地址 。