2012-11-30 3 views
0

SGI STL 할당 자의 하위 할당에는 크기가 8,16, ..., 128 인 작은 블록을 개별적으로 관리하는 16 개의 자유 목록이 있습니다. 자유 목록 노드의 구조는 다음과 같습니다.SGI STL 하위 할당 된 무료 목록

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

제 질문은 : 왜 이렇게 설계 되었습니까? client_data 멤버는 무엇을 위해 사용됩니까?

답변

1

이것은 일반적인 디자인 패턴입니다. client_data [] 실제로 8, 16, .. 128 바이트입니다. obj가 할당 된 위치를 보면 128 바이트 블록의 경우 malloc (sizeof (obj) + 128) 처럼 보일 수 있습니다.