空间配置器
Posted sunbines
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了空间配置器相关的知识,希望对你有一定的参考价值。
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 }
以上是关于空间配置器的主要内容,如果未能解决你的问题,请参考以下文章