2012-11-30 35 views
0

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

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

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

回答

1

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