[C] Zu dumm für Zeiger in dynamischen Datenstrukturen
Hallo,
ich benutze eine dynamische Datenstruktur, in der ich Fehlermeldungen speichere. Die Struktur sieht so aus:
Code:
struct err_msg {
char *errorstring;
int failure;
struct err_mesg *next;
struct err_mesg *previous;
};
Ich möchte jetzt einfach nachdem ich alle Elemente angehängt habe über die previous-Zeiger wieder zu ersten Element springen. Dazu habe ich folgende Funktion geschrieben:
Code:
void goto_first_element(struct err_msg **element) {
struct err_msg *helper1, *helper2;
helper1 = *element;
while (helper1->previous != NULL) {
helper2 = helper1->previous;
if (helper2->previous == NULL)
break;
else
helper1 = helper2->previous;
}
*element = helper1;
}
Nun bekomme ich aber immer wenn ich den Code kompiliere die Warnung: "warning: assignment from incompatible pointer type" für die Zeilen
Code:
helper2 = helper1->previous;
und
Code:
helper1 = helper2->previous;
, aber z.B. nicht bei
Code:
helper1 = *element;
Bevor jetzt jemand sagt ich sollte am einfachsten ein Anfangs-Zeiger benutzen, der hat zwar recht, hat sich aber halt so ergeben und ist eigentlich auch egal, weil ich die selbe Warnung auch in anderen Funktionen mit ähnlicher Funktionsweise bekomme.