在使用C的Master Algorithm中,作者声明了链式哈希表的结构,如下所示:
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]
这样的东西。我对吗?为什么作者的定义可以正确地通过测试?为什么是正确的?谢谢!
答案 0 :(得分:1)
table
是List
指针,用于表示List
的数组。它可能是这样初始化的:
htbl->table = malloc(sizeof(List) * htbl->buckets);