Hi,
Danke für deine Hilfe. Allerdings funktionierte es bei mir erst dann, wenn ich statt char *tmp zB char tmp[50] schreibe. Warum wurde *tmp als Zeiger auf char deklariert?
sprintf() erwartet einen Zeiger auf char. Durch die bloße Deklaration als solcher wurde allerdings noch kein Speicherplatz allokiert, daher wohl die Fehlermeldung. Deine Deklaration "char tmp[50]" allokiert sofort 50 Bytes. Wird der Bezeichner eines Arrays ohne eckige Klammern angegeben (in deinem Fall "tmp"), entspricht dies in C dem Zeiger auf das erste Element. Du übergibst also korrekt "Zeiger auf char".
Gruß,
Andreas.