Originariamente inviato da rsdpzed
max va settato a null. prima controlli se l'esame in questione è quello che ti interessa poi se max è NULL lo assegni a max altrimenti lo confronti prima con max...

P.S.
non è un problema con le "liste" ma con i controlli di flusso. cioè la base per poter risolvere qualsiasi problema con un qualsiasi linguaggio.
Grazie per il consiglio, ho risolto così

codice:
TNode* esame_prof(TList list, char prof[]){
    TNode* max=NULL;

    if(list==NULL){
        return NULL;
    }

    while(list!=NULL){
        if((strcmp(list->info.satellite.docente, prof)==0)){
            if(max==NULL){
                max=list;
            }else{
                if(list->info.satellite.voto > max->info.satellite.voto){
                    max=list;
                }
            }
        }
        list=list->link;
    }

    return max;
}