malloc函數的實質體現在,它有一個將可用的內存塊連接爲一個長長的列表的所謂空閒鏈表。調用malloc函數時,它沿連接表尋找一個大到足以滿足用戶請求所需要的內存塊。然後,將該內存塊一分爲二(一塊的大小與用戶請求的大小相等,另一塊的大小就是剩下的字節)。接下來,將分配給用戶的那塊內存傳給用戶,並將剩下的那塊(如果有的話)返回到連接表上。調用free函數時,它將用戶釋放的內存塊連接到空閒鏈上。到最後,空閒鏈會被切成很多的小內存片段,如果這時用戶申請一個大的內存片段,那麼空閒鏈上可能沒有可以滿足用戶要求的片段了。於是,malloc函數請求延時,並開始在空閒鏈上翻箱倒櫃地檢查各內存片段,對它們進行整理,將相鄰的小空閒塊合併成較大的內存塊
malloc實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
-> 在c語言中是什麼意思?
zhaojiabo1997
2020-07-08 08:36:40
cvCloneImage()和cvCopy()的區別
lcy9819
2020-07-08 11:22:40
用MASM實現讀UCS-2文件
Just_Fancy
2020-07-08 11:15:30
C語言的一些細節總結
redarm
2020-07-08 10:59:37
養生需知:世上最健康的作息時間
wsimei
2020-07-08 10:29:28
ASP正則表達式收集
haichanglin
2020-07-08 10:27:05
太陽的女人18
id="I7" marginwidth="0" marginheight="0" src="http://www.bookeba.cn/securi
new66
2020-07-08 10:21:11
Apache Tomcat 6.0.18與JDK的安裝配置
银月术
2020-07-08 09:14:45
DirectorySearcher 的PropertiesToLoad所有屬性
银月术
2020-07-08 09:14:45
Microsoft windows internals 學習筆記(1)
herx1
2020-07-08 08:25:19
ZJU-1066
immortality
2020-07-08 08:24:45
ZJU-1042
immortality
2020-07-08 08:24:44