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.