私は少し助けを使うことができました。構造のキューを年ごとに並べ替えようとしています。
これは私の構造です:
struct element{
int id;
int sign;
int year;
int month;
double amount;
struct element *next;
};
struct queue{
struct element *head;
struct element *tail;
struct element *heads;
struct element *temp;
struct element *temph;
int size;
};
そして、これは私が書いた関数です:
void sort(struct queue* queue){
if (queue->size == 0){
printf("Struct is empty\n");}
else {
struct element* head=queue->head;
struct element* heads=queue->heads;
struct element* temp=NULL;
struct element* temph=queue->head;
int i, size=queue->size;
for(i=0;i<size-1;i++){
heads=head->next;
if((head->year)>(heads->year)){
temp=head;
head=heads;
heads=temp;
}
head=head->next;
heads=NULL;
temp=NULL;
}
head=temph;
}
}
私がcopmareすると壊れます:if((head->year)>(heads->year))
。私の問題は、次の構造体への不適切な参照が原因であると確信していますhead
(私はそれに名前を付けましたheads
)。