Так вот моя функция сортировки, я не обмениваю информацию из связанного списка только указателями на следующий узел.У меня есть аналогичная функция, которая сортирует по цене автомобиля, который работает отлично, когда я использую сортировку по году выпуска автомобиля, я получаю ошибку сегментации 11.
void ordenaCrescenteAno(ELEMCAR *iniLista){
ELEMCAR *aux1 = NULL;
ELEMCAR *aux2 = NULL;
ELEMCAR *maior = NULL;
ELEMCAR *troca = NULL;
if(iniLista == NULL){
printf("Lista Vazia\n");
return;
}
for(aux1 = iniLista; aux1 != NULL; aux1 = aux1 -> seguinte){
maior = aux1;
for(aux2 = aux1; aux2 != NULL; aux2 = aux2 -> seguinte){
if(aux2->info.ano > maior->info.ano){
maior = aux2;
}
}
if(maior != aux1){
troca->seguinte = aux1->seguinte;
aux1->seguinte = maior->seguinte;
maior->seguinte = troca->seguinte;
}
}
}
Я собираюсь поставить здесьдетали связанного списка:
typedef struct carro{
char matricula[7];
char marca[30];
char modelo[30];
int ano;
char classe[30];
float preco;
char combustivel[10];
int dataInspecao;
int dataRevisao;
char observacoes[100];
int estado;
}CARINFO;
typedef struct CarElem{
CARINFO info;
struct CarElem *seguinte;
}ELEMCAR;
Что я делаю не так?Я не могу понять это, так как у меня есть похожая функция, которая работает, но я сортирую по переменной "preco".