我的结构定义。
typedef struct inner_list {char word[100]; inner_list*next;} inner_list;
typedef struct outer_list
{ char word [100];
inner_list * head;
outer_list * next; } outer_list;
和问题部分:
void append(outer_list **q,char num[100],inner_list *p)
{ outer_list *temp,*r;
temp = *q;
char *str;
if(*q==NULL)
{ temp = (outer_list *)malloc(sizeof(outer_list));
strcpy(temp->word,num);
temp->head = p;
temp->next=NULL;
*q=temp;
}
else
{ temp = *q;
while(temp->next !=NULL)
{ temp=temp->next;
}
r = (outer_list *)malloc(sizeof(outer_list));
strcpy(r->word,num);
temp->head = p;
r->next=NULL;
temp->next=r;
}
}
我不知道我在这个追加函数中做错了什么,我要发送一个char数组和一个链表以存储另一个链表。但是我不能将链表存储在另一个链表中。我不知道这个问题。有任何想法吗?
最佳答案
在else子句中,您的代码说
temp->head = p;
应该说:
r->head = p;
r
是新创建的节点,因此您要设置该节点的head
。相反,您正在做的是覆盖现有节点的head
字段。关于c - 这个附加函数在C中有什么问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2827494/