Ich habe eine Linkliste der Kontakte in C erstellt. Es hat gut funktioniert. aber jetzt möchte ich eine Löschfunktion für einen angegebenen Kontakt schreiben (namentlich) Ich bekomme die Error:"dereferencing pointer to incomplete type"
. Hier ist mein Code:C: Dereferenzieren Zeiger auf unvollständigen Typ Fehler
struct contact
{
char name[100];
char number[20];
struct contact *next;
};
int deleteByName(struct contact **hptr, char *name)
{
struct student *prev = NULL;
struct student *temp = *hptr;
while (strcmp(temp->name /*The Error is Here*/ , name) != 0 && (temp->next) != NULL)
{
prev = temp;
temp = temp->next;
}
if (strcmp(temp->name, name) == 0)
{
if (prev == NULL)
*hptr = temp->next;
else
prev->next = temp->next;
free(temp);
return 0;
}
printf("\nNAME '%s' WAS NOT FOUND TO BE DELETED.", name);
return -1;
}
Ich wollte wissen, warum ich diesen Fehler bekomme (trotz der Definition von Struktur Kontakt.). Vielen Dank.
Wahrscheinlich, weil Sie 'struct contact' definieren, aber' temp' ist als ein Zeiger auf 'struct student' definiert. – yeputons
Hallo und willkommen bei StackOverflow! Leider präsentieren Sie nicht genug Code für uns, um Ihnen bei Ihrem Problem richtig helfen zu können. Bitte lesen Sie [fragen] und aktualisieren Sie Ihre Frage mit einem [mcve]. –