两个双链表C++的初始化

两个双链表C++的初始化,c++,struct,null,linked-list,doubly-linked-list,C++,Struct,Null,Linked List,Doubly Linked List,我正试图将我的两个双链接列表初始化为空,但我的程序正在崩溃。该程序从文本文件中分离偶数和奇数整数。我相信问题出在InitializeList函数中,但我尝试了几种不同的方法,但都无济于事。我需要将它们都初始化为: Odds->top = NULL; Odds->length = 0; Evens->top = NULL; Evens->length = 0; 有人能指出我做错了什么吗 代码: 你的赔率和均衡变量只是指针。但他们指的是什么 您需要分配一些内存或执行其他操

我正试图将我的两个双链接列表初始化为空,但我的程序正在崩溃。该程序从文本文件中分离偶数和奇数整数。我相信问题出在InitializeList函数中,但我尝试了几种不同的方法,但都无济于事。我需要将它们都初始化为:

Odds->top = NULL;
Odds->length = 0;

Evens->top = NULL;
Evens->length = 0;
有人能指出我做错了什么吗

代码:

你的赔率和均衡变量只是指针。但他们指的是什么

您需要分配一些内存或执行其他操作,以便它们指向有效内存。实际上,您将它们传递给InitializeList,它设置甚至不存在的属性

由于您甚至没有初始化这些指针,所以不知道它们有什么值,这意味着不知道它们指向什么内存

下面这种未经测试的方法更有意义

list Odds;
list Evens;

InitializeList(&Odds);
InitializeList(&Evens);
ReadFirst(&Odds, &Evens);
在这里,列表不是指针。它们是完整的对象。然后,您只是将指向这些对象的指针传递给其他函数。

您的初始化列表不会初始化A_列表,因此如果A_列表为空,则不能将其引用为A_列表->顶部

看看你怎么称呼它:

list* Odds

Odds = InitializeList(Odds);
赔率是指什么都没有,所以在InitializeList中会出现错误

要初始化列表,您应该执行以下操作

list* Odds = new list

该程序可以编译,但在运行时不会显示任何内容。感谢您的帮助。不要忘记做出最有帮助的回答。这就解决了问题,谢谢!
list* Odds

Odds = InitializeList(Odds);
list* Odds = new list