union obj
{
union obj * free_list_link;
char client_data[1];
};
union 类型内存分配的大小为它所包含类型中内存最大的一个
即 sizeof(obj *)等于4
stl 源码分析 中原句为:
上述Obj所用的是union,由于union之故,从其第一字段观之,obj可被视为一个指针,指向相同形式的另一个obj。
从其第二个字段观之,obj可被视为一个指针指向[实际区块];
达到一物两用的效果
具体展开说即:
obj在内存管理时为连接闲置内存的指针,当内存被分配出去后, obj(为char[1])作为用户使用的内存