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.
Lesezeichen