Ciao! Devo creare una procedura che, data una lista di interi, elimini tutti i numeri dispari. Questo è quello che ho prodotto, ma quando compilo mi dice "Segmentation fault:11"
Grazie
codice:
void Dis(Lista *lista){
Lista pre;
Lista aux;
aux=malloc(sizeof(Elemento));
aux=*lista;
while(((aux)->i)%2==1){ //in questo ciclo elimino tutti i numeri dispari iniziali
Lista tmp2;
tmp2=aux;
if((tmp2->next->i)%2==1){
aux=(aux)->next;
free(tmp2);}
else{
(aux)=(aux)->next->next;
pre=tmp2->next;
free(tmp2);
}
}
while(aux->next!=NULL){ //ora, dopo qualche numero pari elimino i restanti dispari
if(((aux)->i)%2==1){
Lista tmp;
tmp=(aux);
pre->next=pre->next->next;
(aux)=(aux)->next;
free(tmp);
}
else{
(aux)=(aux)->next;
pre=pre->next;
}
}
}