io credo di avere capito come funziona la cosa.

codice:
 
status inserisciordinato(lista *r_L, record *d)
{
  lista L;
  if(*r_L == NULL || strcmp(d->nome, (*r_L)->elemento->nome) < 0 )
  {
    allocanodo(&L, d);
    L->next = *r_L;
    *r_L = L;
  }
  else
    inserisciordinato(&((*r_L)->next), d);
}
r_L punta un elemento fatto cosi:

codice:
--------------
|   info     |
--------------
|   next     |
--------------
|  indirizzo |
--------------
ogni qual volta io faccio *r_L, accedo al campo next di questo elemento. E' vero? Provando a ragionare cosi, sul programma..il ragionamento funxiona. Però è chiaro che r_L non punta "solo" a un puntatore.