Объявление связанной хеш-таблицы

В Master Algorithm with C автор объявил структуру связанной хеш-таблицы, как показано ниже:

typedef struct CHTbl_ {

int                buckets;

int                (*h)(const void *key);
int                (*match)(const void *key1, const void *key2);
void               (*destroy)(void *data);

int                size;
List               *table;

} CHTbl;

Но я подумал, что последним должен быть List *table[buckets];, так как автор использовал что-то вроде &htbl->table[bucket]. Я прав? Почему авторское определение могло правильно пройти проверку? почему оно правильное? Благодарю вас!


person user1656238    schedule 20.05.2013    source источник


Ответы (1)


table является указателем List и используется для представления массива List. Вероятно, он инициализируется следующим образом:

htbl->table = malloc(sizeof(List) * htbl->buckets);
person jxh    schedule 20.05.2013