Avevo dato un occhio a quel link, ma sinceramente non ci ho capito molto sul funzionamento..
Ho comunque provato a buttar giù due righe di pseudo, per poi arrivare a questo codice che sembra funzionare (almeno teoricamente):
Però mi da questo errore:codice:nodo* eliminazione(nodo *p, int val) { if(p->dato == val) p->dato = p->ptrsx; if(p == NULL) return NULL; else elimina(p->ptrsx); } int elimina(nodo *p) { int num; if(p->ptrsx == NULL) { num = p->dato; free(p); return num; } else if(p->ptrsx != NULL) elimina(p->ptrdx); }
assignment makes integer from pointer without a cast
in questa riga di codice:
p->dato = p->ptrsx;
Come mai?
Ho anche provato a fare una cosa del genere, ma da lo stesso identico errore..
codice:nodo* eliminazione(nodo *p, int val) { nodo *r; r = p->dato; if(p->dato == val) p->dato = r->ptrsx; if(p == NULL) return NULL; else elimina(p->ptrsx); }

Rispondi quotando