C-(链接列表)警告:来自不兼容指针类型的分配



我正在以下警告

警告消息:

警告:来自不兼容的指针类型的分配

警告下行:

for(ptr =& hashtable [hashfunction(s)]; ptr!= null; ptr = 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 != ''; s++) {
        hashValue += *s;
    }
    
    return hashValue % tableSize;
}

i通常会像这样打字。它摆脱了我的警告。

typedef struct SinglyLinkedList_TAG {
   struct SinglyLinkedList_TAG *next;
   char name[50];                     // key
   int mid;                           // mark
   int final;
} SinglyLinkedList;

相关内容

最新更新