在SGI STL分配器子分配中,有16个空闲表,它们分别管理大小为8,16,....,128的小块。空闲列表节点的结构是:
union obj{
union obj *free_list_link;
char client_data[1];
}我的问题是:为什么它被设计成这样?成员client_data是用来做什么的?
发布于 2012-11-30 12:06:19
这是一种常见的设计模式。client_data[]实际上是8,16,..128字节。如果您查看obj的分配位置,对于一个128字节的块,它可能类似于malloc( sizeof(obj) + 128 )。
https://stackoverflow.com/questions/13638649
复制相似问题