Öhm, negativ, am malloc ist doch gar nichts verkehrt? Es alloziiert genau so viel Speicher wie eine liste-Instanz benötigt.
Und genau das brauchst du ja um ein Element anzuhängen.
Es ist btw. etwas verwirrend wenn du von einer Funktion sprichst die ein Element ans Ende anhängt, aber eins Postest die einen neuen Anfang erstellt.
Wenn man also davon absieht dass in Zeile 4 bei der Wertzuweisung statt auf
next auf
data verwiesen werden muss, ist die Funktion doch OK?
Es seiden du willst wirklich ein Element an das andere Ende anhängen: In dem Fall ist das vorgehen etwas anders:
- Letztes Element suchen (wo .next == NULL)
- neues Element erstellen (genauso wie hier) und füllen (.data = Wert, .next = NULL)
- das .next des alten Elements auf das neue verweisen lassen