我收到了警告
警告信息:
警告:从不兼容的指针类型
分配警告以下行:
for(ptr =& hashTable [hashFunction(s)]; ptr!= NULL; ptr = ptr-> next)
我的问题:
我只是不知道纠正这个。有什么问题以及如何解决这个问题? 非常感谢你。
以下是源代码:
typedef struct {
struct SinglyLinkedList *next;
char name[50]; // key
int mid; // mark
int final;
} SinglyLinkedList;
// Global Variables
int tableSize;
SinglyLinkedList *hashTable;
...
SinglyLinkedList* find (char *s)
{
SinglyLinkedList *ptr;
for (ptr = &hashTable[hashFunction(s)]; ptr != NULL; ptr = ptr->next) {
if (strcmp(s, ptr->name) == 0) {
return ptr; //found
}
}
return NULL; //not found
}
...
int main(void) {
...
hashTable = (SinglyLinkedList*) malloc (sizeof(SinglyLinkedList) * tableSize);
...
}
添加代码:
int hashFunction(char *s) {
int hashValue;
for(hashValue = 0; *s != '\0'; s++) {
hashValue += *s;
}
return hashValue % tableSize;
}
答案 0 :(得分:1)
我通常像这样输入dede node。它摆脱了对我的警告。
typedef struct SinglyLinkedList_TAG {
struct SinglyLinkedList_TAG *next;
char name[50]; // key
int mid; // mark
int final;
} SinglyLinkedList;