0

SGI STLアロケータのサブ割り当てには、サイズ8、16、....、128の小さなブロックを個別に管理する16のフリーリストがあります。フリーリストのノードの構造は次のとおりです。

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

私の質問は:なぜそれがこのように設計されているのですか?client_dataのメンバーは何に使用されますか?

4

1 に答える 1

1

これは一般的なデザインパターンです。client_data []は実際には8、16、..128バイトです。objが割り当てられている場所を見ると、128バイトのブロックの場合はmalloc(sizeof(obj)+ 128)のようになります。

于 2012-11-30T04:06:19.187 に答える