I tuoi programmi vanno in crash perché continui a deferenziare puntatori inizializzati a null.
Se non vuoi che questo si verifichi inizializza i puntatori in modo opportuno.
codice:
TNode* Punteggio(TList lista){
/* inizializzo il punteggio con il primo della lista */
TNode* score = lista;
/* avanzo di un nodo per fare il primo confronto con il nodo successivo */
lista = lista->next;
/*posso usare direttamente lista, all'uscita della funzione lista tornerà a puntare al primo elemento */
while(lista!=NULL){
if(lista->info.punteggio > score->info.punteggio){
score=lista;
}
/* l'avanzamento va fatto alla fine, altrimenti all'ultimo confronto lista varrà null */
lista=lista->next;
}
return score;
}