Ci ho pensato venti minuti e poi finalmente ho capito penso..!

Il programma è sbagliato perchè si, allocchi sempre un nuovo elemento, ma che punta sempre alla variabile record r.

Quindi è sempre lo stesso indirizzo che scrive, e quindi sempre l'ultimo elemento che inserisci (nome,cognome,ecc) perchè è quello che assume il record r.

Devi allocare anche lo spazio ogni volta per la struttura, gh.

Penso (penso) sia questo il problema.

Ciao!