Salve a tutti! Sto provando a svolgere un esercizio in cui si chiede di eliminare da una lista gli elementi di posto pari. Il codice che ho scritto invece di eliminare soltanto quelli che si trovano nelle posizione pari e come se mi cancellasse tutta la lista. Ancora non sono entrata bene nella giusta ottica delle liste quindi sto cercando di capire cosa sbaglio.
Il codice che ho scritto è il seguente:
struct elemento *eliminazionepari(struct elemento *p){
struct elemento *aus;
int i;
for(i=0; p!=NULL; i++){
if(i%2==0){
aus=p;
p=p->next;
free(aus);
}
p=p->next;
}
return p;
}