在c语言中合并两个单链接列表

在c语言中合并两个单链接列表,c,struct,linked-list,segmentation-fault,C,Struct,Linked List,Segmentation Fault,我正在编写一个函数,它采用两个列表结构,每个列表结构包含两个指针,一个指向列表中的第一个节点,另一个指向列表中的最后一个节点。 我在if线上的if线上遇到了一个分段错误。 以下是我的功能: 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-&

我正在编写一个函数,它采用两个列表结构,每个列表结构包含两个指针,一个指向列表中的第一个节点,另一个指向列表中的最后一个节点。 我在if线上的if线上遇到了一个分段错误。 以下是我的功能:

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;
    }
}
有人知道我为什么会出现seg故障吗? 编辑 ElemType声明为

Typedef int ElemType

看看这个嵌套循环。您可能真的不想查看列表b的长度*bLength次。

for(i=0;i
IMO首先计算列表是没有意义的。你是对的,这是没有意义的。但是,关于seg故障有什么想法吗?@wildplasser请看一下右边较旧的主题
-->
。这样的事情可以在10行代码中非常优雅地处理。不需要计算。
Typedef int ElemType