Den Puffer habe ich von 6 auf 12 Zeichen vergrößert. itoa schreibt sein Ergebnis aber nicht ab dem Abfang des Strings, sondern fängt erst ab Position 6 (dem 7.Zeichen) an.

Wenn itoa fertig ist, schaue ich nach, vieviele Nullen vorne dran müssen, bis die Stringlänge ganze 5 Zeichen ist. str wandert so lange zum Stringanfang und schreibt '0', bis er die 5 Zeichen hat. Dann wird der String ab str (und nicht von ganz Anfang, das wäre buffer) ausgegeben.