Buonasera a tutti, volevo chiedervi una mano per risolvere questo mio problema che mi tormenta da due settimane. Sto scrivendo un semplice programma in C che legga da file txt dei numeri, li inserisca in una lista e successivamente li ordini spostando i vari nodi, quindi non spostando i singoli valori. Il mio problema è l' ordinamento, quando provo a scambiare i puntatori mi va in segmentation.
Questa è la funzione incriminata:
void ordina(struct lista **testa)
{
struct lista *ultimo=NULL, *curr=*testa, *temp=NULL;
ultimo=curr->next;
if(ultimo->val > curr->val){
temp=curr;
curr=ultimo;
ultimo=temp;
}
curr->next=ultimo;
}
Sto provando a scambiare i primi due valori e poi implementare l algoritmo in un doppio ciclo per il sort ma non funziona.
Grazie in anticipo.
Lorenzo.