Buongiorno a tutti.
Sto svolgendo un esercizio sulle liste concatenate e quando eseguo la funzione
void destroy (element *h)
che dovrebbe cancellarmi tutti gli elementi della lista mi dà segmentation fault. Perchè?
void destroy (element *h) {
element *p, *c;
for (p=NULL, c=h; c!=NULL; p=c, c=c->next) {
p->next = c->next;
free (c);
}
La struttura dati che gli passo è questa:
struct element {
int info;
struct element *next;
};
typedef struct element element;
Qualcuno ne capisce? Ringrazio in anticipo.