interessante!

peccato che non mi funzioni in questo modo, dove sbaglio?

codice:
printf("%40s|%40s|%40s\n", p->info.cognome, p->info.nome, p->info.matricola);
si interrompe il programma a tempo di esecuzione.. ma è tutto corretto, se metto in questo modo in un cout funziona, quindi dovrebbe andare bene..

EDIT:

il problema sembra essere con p->info.matricola, che è un numero... perchè non gli va bene?

RI-EDIT:
ho letto in giro come lavora il printf, devo cambiare quella "s" che sta per string e dire che lì stampo un numero! provo e vi dico, ma sicuramente andrà bene...grazie!