Originariamente inviato da iguana13
Ma siccome in C non si può...

La soluzione è usare un puntatore per i parametri (proprio come ha fatto Habdul!)

Esempio:
codice:
void Incrementa(int *a, int *b, int *c)
{
*a += 2;
*b += 7;
*c += 200;
}
che modifica i parametri
Esatto!
Però se nel main hai già dei puntatori se passi per indirizzo ti da problemi, devi dichiarare la funzione così
codice:
void Partiziona(lista **testa, lista **coda, lista **perno){ 

       lista *elc, *indice, *prec; 
       ... 
       *perno = *testa; 
       *testa = *elc; 
       *coda = *prec; 
}
Nella chiamata della funzione poi devi usare la '&' (Cioè passare l'indirizzo del puntatore a testa ecc)
codice:
partiziona(&testa,&coda,&perno);