Я пишу функцию, которая принимает две структуры списка, каждая структура списка содержит два указателя: один для первого узла в списке, а другой - последний в списке. Я получаю ошибку сегментации в строке if в строке if. Вот моя функция:Слияние двух отдельных списков ссылок в c
extern void lst_merge_sorted(LIST *a, LIST *b);
void lst_merge_sorted(LIST *a, LIST *b){
NODE *aCurr,*bCurr,*aTemp,*bTemp;
aCurr = a->front;
bCurr = b->front;
aTemp = a->front;
bTemp = b->front;
int aLength = 2, bLength = 2;
while(aCurr->next != NULL){
aLength++;
aCurr = aCurr->next;
}
while(bCurr->next != NULL){
bLength++;
bCurr = bCurr->next;
}
int i,j;
for (i = 0; i < aLength; i++){
for(j = 0; j < bLength; j++){
if (bTemp->val < aTemp->val){
bTemp->next = aTemp->next;
aTemp->next = bTemp;
}
bTemp = bTemp->next;
}
aTemp = aTemp->next;
}
}
и мой список Struct/Node Struct:
typedef struct node {
ElemType val;
struct node *next;
} NODE;
struct list_struct {
NODE *front;
NODE *back;
};
Кто-нибудь есть какие-либо идеи, почему я получаю ошибку сегм? EDIT ElemType декларация
Typedef int ElemType
'for (i = 0; i
wildplasser
Вы правы, это не имеет смысла. Любая идея об ошибке seg? @wildplasser –
Пожалуйста, взгляните на старые темы справа '- >>'. Подобные вещи можно обрабатывать довольно элегантно в 10 строках кода. Без учета. – wildplasser