Ciao a tutti ho il seguente problema con la VOID: data una lista L1 voglio modificare SOLTANTO la testa se è pari.
codice:
struct elemento 
  {
   int inf;
   struct elemento *next;
  };
void MODIFICA(struct elemento *L1)
{
  struct elemento *app;
  if (L1->inf % 2 == 0)
        {
          printf("testa pari \n");
          app = (struct elemento *)malloc(sizeof(struct elemento));
          app->inf = (L1->inf * 2);
          app->next = L1;
          L1 = app; /*aggiorniamo la testa*/
          printf("L1 ->inf e' %d \n",L1->inf);
        } 
  return;  
}
In output mi da sempre la stessa lista anke se la testa è pari. Senza usare la void lo so risolvere, ma io non ho capito perche fatta con la void non funziona??
SAPETE DIRMI PERCHè ????? grazie in anticipo

PS ho messo le printf perche nella funzione la modifica la testa, come potete accertare anke voi, ma nel main quando vado a visualizzare la lista la stampa uguale a come era prima.