Salve a tutti,
ho questo problema:
chiamo una funzione che visita gli elementi di una pila e li cancella,
quando ritorno alla funzione chiamante cima_p è stato cancellato ma comunque passa il controllo dell' if quindi mi da:
Segmentation fault (core dumped)..

codice:
int main(void)
{  
  /*funzione chiamante*/
  scorri_adiac_p = visita_archi_pila(cima_p);
  /*...*/
  if (cima_p != NULL)
     scorri_adiac_p = visita_archi_pila(cima_p);

  return(0);
}
/*scorre tutti gli elementi e li elimina*/
arco_grafo_t *visita_archi_pila(elem_lista_t *cima_p)
{
  for (;
        (cima_p != NULL);
        temp = cima_p, cima_p = cima_p->succ_p, free(temp)) 	
    {
      /*...*/
    }
}
credo che sia giusto che passi il controllo dell' if dato che in effetti cima_p è diverso da NULL..
ma non so come aggirare il problema.. cioè che tipo di espressione si può mettere al posto di cima_p != NULL ?

Grazie.