Salve a tutti, mi servirebbe una mano con una struttura legata da puntatori (anche se per come ce le hanno spiegate all'Università le chiamo liste).
La struttura è la seguente
Dopo aver definito tutte le value ecc. ecc. devo confrontare ogni singola value con un valore e cancellare tutte quelle che, dopo un incremento di 1, superano tale valore facendone il free della memoria e restituire il numero di elementi cancellati nel processo.codice:struct elemento{ int value; struct elemento *next; };
Nel prototipo della funzione avevo pensato una cosa del genere
(dove N è il numero di elementi contenuti nella lista)codice:int increase_delete ( struct elemento **lista, int N, int soglia );
Per poi farla in questo modo
Ritornando N-count come numero di elementi cancellati. Come posso fare a liberare tutti gli elementi oltre tale soglia?codice:int increase_delete( struct elemento **lista, int N, int soglia){ int count; while ( *lista != NULL && ++(*lista)->value <= soglia){ *lista = (*lista)->next; count++; } //MANCA LA PARTE IN CUI LIBERO LA MEMORIA return (N-count); }

Rispondi quotando
