(链表)警告:从不兼容的指针类型中分配

时间:2017-03-02 20:21:46

标签: c pointers linked-list

我收到了警告

警告信息:

警告:从不兼容的指针类型

分配

警告以下行:

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;
}

1 个答案:

答案 0 :(得分:1)

我通常像这样输入dede node。它摆脱了对我的警告。

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