0
私は次の警告(リンクリスト)警告:互換性のないポインタ型から割り当て
警告メッセージ取得しています:
警告:互換性のないポインタ型からの代入行を次のように
警告:を
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);
...
}
を追加しましたCODE:
int hashFunction(char *s) {
int hashValue;
for(hashValue = 0; *s != '\0'; s++) {
hashValue += *s;
}
return hashValue % tableSize;
}
それは 'のtypedef構造体中'構造体SinglyLinkedList'が{[...]} SinglyLinkedList'は、実際には異なる/新しい/ローカル型であることだろうか? 'SinglyLinkedList'がまだ定義されていないので、あなたはポインタオブジェクトを生成することができないのです。 – JHBonarius
@wildplasser申し訳ありません、ただhashTableのコードを追加しました –
追加レベルの追加を追加してください。そして、 'hashTable'をポインタの配列(またはポインタへのポインタ、malloc()のサイズ)にします。ところで:tableSizeは初期化されていません。 – wildplasser