lwbt的內存分配詳解

 Lwbt來派發的。在這個數組中規定了哪一段是屬於哪個類型的,這樣做的方法不是很科學,是通過規定各個類型結構的最大能用的個數來取的。Hci_pcb數組中的元素是每個類型的大小。memp_tab首先來看下memp數組中的元素都是這個結構的指針。
 
lwbt_memp_malloc下面看下lwbt_memp_init中的各對應元素。對於限制數大於1的初始化作爲實例,其中預分配的數目爲4中沒有明顯的字樣提及到鏈表的。這個功能,這裏暫且稱爲隱式鏈表。它的實現,是通過在分配多個連續塊內存的時候,在每一塊前加分一個指針大小的內存,並通過這個指針指向下一塊內存的起始地址。
p_temp=p1; *p1=(int)p_temp+size(struct)+1;//對齊。
 
中的實現要明顯一些,主要是通過了struct memp接着,在講下malloc:通過類型從memp_tab指針賦值給memp_tab[:通過類型將memp_tab[類型指針,的next。相當向隱式鏈表中增加節點。
 
       一直都是指向該類型第一個可用的內存地址。
 
其中mem中:memp = (struct memp *)((u8_t *)mem - sizeof(struct memp));中隱式鏈表的正常運行。
 
Malloc前面的兩個都以分配,現在首要free<span times="" new="" roman';="" mso-hansi-font-family:="" 'times="" roman'"="" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 宋體; ">第一個】
<span times="" new="" roman';="" mso-hansi-font-family:="" 'times="" roman'"="" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 宋體; ">
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章