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)..
credo che sia giusto che passi il controllo dell' if dato che in effetti cima_p è diverso da NULL..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)) { /*...*/ } }
ma non so come aggirare il problema.. cioè che tipo di espressione si può mettere al posto di cima_p != NULL ?
Grazie.

Rispondi quotando
