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.