c-无法创建第二个双链接列表



所以我创建了两个结构LIST(由头和最后一个指针组成(和NODE(由下一个和上一个指针构成(。我有一个函数create_list(list*p(,它执行以下操作:

  1. 将头和最后一个指针设置为NULL

  2. 要求用户为列表输入节点数,还允许用户输入值,并以有序的方式(递增顺序(插入节点

  3. 完成后,它会显示列表

所以我创建了两个LIST指针变量,并尝试制作两个双链接列表,它非常适合第一个列表,但第二个列表没有初始化。

这是代码:

void create_list(LIST *p){
int x;
printf("enter no of elements to entern");
scanf("%d", &x);
printf("creating a list of size %dn", x);
p->head =NULL;
p->last=NULL;
printf("initialised listn");

for(int i =0; i<x; i++){
ins(p);
}
display(p);
}

int main(){
LIST* list1, *list2;
create_list(list1);
create_list(list2);
return 0;
}

LIST* list1, *list2;没有做你认为它在做的事情。这些指针指向内存中的一个随机位置。它们需要指向某个LIST类型。换句话说,您的代码中不存在LIST。这是未定义的行为,所以第一个正确初始化的事实只是偶然的。

例如,如果我希望它们存在于main的堆栈中:

LIST list1, list2;
create_list(&list1);
create_list(&list2);

现在存在2个LIST,我们已将它们的地址传递给create_list

相关内容

  • 没有找到相关文章

最新更新