我目前正在尝试创建一个字符串哈希表。但是,在我的搜索功能中,我遇到了一个错误:请求成员_在不是结构或联合的东西中......再次
/*search hash table*/
ListC search(hash_ref h, char* key){
ListC* tempList;
int hashvalue= hashing(h, key);
46 for(tempList= h->List[hashvalue]; tempList!=NULL; tempList=tempList->next){
47 if(strcmp(tempList->key,key)==0){
return tempList;
}
}
return NULL;
}
/*hash function*/
int hashing(hash_ref h, char* key){
int hashvalue=0;
for(hashvalue=0;key!='\0';key++){
hashvalue= *key + (hashvalue*5) - hashvalue;
}
return hashvalue%h->size;
}
/*HashTable struct*/
typedef struct HashTable{
int size;
ListC **List;
}hash;
typedef struct Node{
long key;/*book id*/
long count;
struct Node* next;
struct Node* prev;
}NodeType;
typedef NodeType* NodeRef;
typedef struct ListCount{
NodeRef first;
NodeRef last;
NodeRef current;
long length;
}ListCount;
ListC 在我的头文件中定义为
typedef struct ListCount* ListC;
在第 46 行和第 47 行,我收到一条错误消息,指出 key 和 next 是不是结构的成员。我不确定这里有什么问题