Prova questo
codice:
elabora((*lista)->prox);
Non ho capito perchè nelle funzioni passi un puntatore a tp che è gia puntatore.
E' una cosa inutile (usato in questo contesto).

Il programma funziona si, ma è fatto mooolto male (non ti piace indentare il codice ?).