Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

Dereferencing pointer to incomplete type?

1 Antwort

Bewertung
  • vor 1 Jahrzehnt
    Beste Antwort

    Ne Zeilenangabe wäre nett gewesen.

    Das Problem hängt in der Definition der Struktur "dictionary" in liste.c (die eigentlich in liste.h gehört). Vorher hast du per typedef "element_t" aus "struct element" definiert. Du hast aber in deiner Definition die Elemente p_search, p_head und p_tail als Pointer auf "struct element_t" statt auf "struct element" oder "element_t" definiert. Da es aber keine Struktur mit diesem Namen gibt, macht der Compiler eine leere (also unkomplette) Struktur, die Fehler gibt, wenn man auf sie zugreift, bevor man ihren genauen Inhalt definiert.

    Solche typedefs sind eigentlich eher blöd, weil sie genau zu solchen Verwechselungen führen.

    Der Code ist aber dadurch immer noch nicht fehlerfrei und statt calloc(1, size), was eigentlich für die Reservierung von Arrays gedacht ist, solltest du eher malloc(size) benutzen.

Haben Sie noch Fragen? Jetzt beantworten lassen.