SGI STL子分配自由列表

时间:2012-11-30 03:38:45

标签: c++ stl

在SGI STL分配器的子分配中,有16个自由列表,分别管理大小为8,16,......,128的小块。 free-lists'节点的结构是:

union obj{
    union obj *free_list_link;
    char client_data[1];
}

我的问题是:为什么它的设计是这样的?成员client_data用于什么?

1 个答案:

答案 0 :(得分:1)

这是一种常见的设计模式。 client_data []实际上是8,16,... 128字节。 如果你看一下obj的分配位置,它可能看起来像        malloc(sizeof(obj)+ 128) 对于一个128字节的块。