码迷,mamicode.com
首页 > 其他好文 > 详细

空间配置器

时间:2018-09-28 16:37:02      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:class   free   lis   适配器   open   res   空间   void   list   



技术分享图片
 1 void* __default_alloc::allocate(size_t n) 
 2 {
 3     obj* volatile *my_free_list;
 4     obj* result;
 5     
 6     if (n > __MAX_BYTES) //若n大于128,则采用第一级适配器
 7         return(malloc_alloc::allocate(n));
 8     
 9     my_free_list = free_list + FREELIST_INDEX(n); //选择采用第几区块
10     result = *my_free_list;
11     if (result == nullptr) 
12     {    
13         void *r = refill(ROUND_UP(n)); //未找到可用free_list,准备填充free_list
14         return r;
15     }
16 
17     *my_free_list = result->free_list_link;     //调整freelist
18     return(result);
19 }
View Code

 

 技术分享图片

 

空间配置器

标签:class   free   lis   适配器   open   res   空间   void   list   

原文地址:https://www.cnblogs.com/sunbines/p/9718824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!