Salve a tutti.
Ho questo codice che crea una lista dinamica di int e la visualizza.
Volendo eliminare un numero dalla lista, come posso fare? Devo fare in modo da poter indirizzare il puntatore del nodo precedente a quello successivo al nodo da eliminare e poi facendo un free(puntatore).
Solo non riesco a far passare l'indirizzo a cui puntare al nodo precedente
Grazie mille per eventuali consiglicodice:#include <stdio.h> #include <stdlib.h> void crealista(); void visualizzalista(); struct elenco { int numero; struct elenco *pun; }; int i,n; struct elenco *p,*paux; main() { crealista(); visualizzalista(); } void crealista() { printf("Quanti numeri vuoi inserire nella lista? "); scanf("%i",&n); if (n==0) p = NULL; else { p = (struct elenco *)malloc(sizeof(struct elenco)); printf("\nInserisci il valore: "); scanf("%i",&p->numero); paux = p; for (i=1;i<=n-1;i++) { paux->pun = (struct elenco *)malloc(sizeof(struct elenco)); paux = paux->pun; printf("\nInserisci il valore: "); scanf("%i",&paux->numero); if (i==n-1) paux->pun = NULL; } } } void visualizzalista() { system("cls"); paux = p; while (paux != NULL) { printf("%i\n",paux->numero); paux = paux->pun; } }![]()


Rispondi quotando