Es ist zusätzlich bemerkenswert, dass nicht nur die Namen alle gleich
sind, sondern der Name, den enthaltenen Ziffern nach, auch dem letzten
Durchlauf der for-Schleife entspricht.
Du hast in der Struktur einen Zeiger als Element der Struktur.
Mit dem sprintf schreibst Du zwar immer wieder in die temporäre
Variable, aber Du setzt .name jedesmal auf den gleichen Zeiger auf
diese Variable. Beim lesenden Zugriff mithilfe dieser Zeiger, erhältst
Du dann natürlich den zuletzt geschriebenen Inhalt der String-Variablen
name.
Zur Nomenklatur: name ist ein "Mitglied" oder ein "Element" der
Struktur.
Es gibt da durchaus mehrere Möglichkeiten. Aber "Parameter" ist
ungünstig, weil Parameter in C mit Funktionen in Zusammenhang stehen.
Das ist in diesem Thread zwar nicht entscheidend, aber kann zu
ungewollten Überschneidungen führen, falls man über Funktionen im Zshg.
mit Strukturen nachdenkt.