タイプstructPersonのデータをリンクリストに渡しているので、各ノードのデータポインターはstructPersonを指しています。
struct Person {
char name[16];
char text[24];
};
リストをトラバースし、を呼び出して各ノードの名前/テキストを出力しようとしています
traverse(&list, &print);
トラバースのプロトタイプは次のとおりです。
void traverseList(struct List *list, void (*f)(void *));
リストは次のように定義されます。
struct List {
struct Node *head;
};
私の印刷関数はvoid*データを受け入れます:
print(void *data) { .... }
Personを構築するためにデータをキャストする必要があることを知っていますよね?
struct Person *person = (struct Person *)data;
printf("%s", person->name);
「互換性のないポインタ型からの初期化」という警告が表示されるので、これでは不十分です。この場合、どうすればvoid *を正常にキャストできますか?ありがとうございました。