2012-11-30 38 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) 。