Delete si usa per deallocare memoria allocata con new (in c++); te per deallocare devi usare free(); prova questa versione di elimina_ostacolo:
codice:OSTACOLO *elimina_ostacolo(OSTACOLO *primo, int a, int b){ if(primo == NULL) return NULL; if(primo->x0 <= a && a <= primo->x1){ if(primo->y0 <= b && b <= primo->y1){ OSTACOLO temp = primo -> suc; free(primo); return elimina_ostacolo(temp, a, b); } } primo -> suc = elimina_ostacolo(primo -> suc, a, b); return primo; }
Non l'ho provata comunque.