當前位置:編程學習大全網 - 網站源碼 - rt1052中malloc申請是哪裏的內存

rt1052中malloc申請是哪裏的內存

glibc中的。

malloc是glibc中內存分配函數,也是最常用的動態內存分配函數,其內存必須通過free進行釋放,否則導致內存泄露。關於malloc獲得虛存空間的實現,與glibc的版本有關。

malloc從堆裏面獲得空間。也就是說函數返回的指針是指向堆裏面的壹塊內存。操作系統中有壹個記錄空閑內存地址的鏈表。當操作系統收到程序的申請時,就會遍歷該鏈表,然後就尋找第壹個空間大於所申請空間的堆結點,然後就將該結點從空閑結點鏈表中刪除,並將該結點的空間分配給程序。malloc函數的實質體現在,它有壹個將可用的內存塊連接為壹個長長的列表的所謂空閑鏈表。調用malloc函數時,它沿連接表尋找壹個大到足以滿足用戶請求所需要的內存塊根據不同的算法而定將最先找到的不小於申請的大小內存塊分配給請求者,將最合適申請大小的空閑內存分配給請求者,或者是分配最大的空閑塊內存塊。然後,將該內存塊壹分為二,壹塊的大小與用戶請求的大小相等,另壹塊的大小就是剩下的字節。接下來,將分配給用戶的那塊內存傳給用戶,並將剩下的那塊返回到連接表上。

  • 上一篇:CRM系統多少錢 貴嗎
  • 下一篇:福奈特小程序不會用怎麽辦
  • copyright 2024編程學習大全網