Grazie infinite il codice funziona i miei errori in pratica erano nel while che avevo provato anche io solo che mi spostavo erroneamente fin quando p era != da NULL il che è sbagliato perchè si ferma a NULL e non all'ultimo elemento.
Grazie del supporto sei grande.