Ho una lista creata in questo modo:

codice:
typedef char stringa[N];
typedef struct nodo * pNodo;
struct nodo
{
       stringa name;
       int age;
       pNodo next;
};
devo cercare e stampare il nome della persona più anziana, la funzione che ho fatto per trovare il massimo è questa:

codice:
pNodo trovaMassimo(pNodo l)
{
          pNodo p = l->next;
          while(p != 0){
                      if(l->age < p->age) l->age = p->age;
                      p = p->next;
                      }
          return l;
}
ora quando vado a stampare nel main l->age mi dà l'età più grande, però se stampo l->name mi stampa sempre il primo nome che inserisco in lista, perchè?