当我想到这个主意时,我正在尝试用C ++实现链接列表。标准节点定义为
class node {
public:
int data;
node *next;
};
我创建了一个空列表node *head;
,然后尝试了
if(head->next == nullptr)
cout<<"Stores nullptr";
if(! head->next)
cout<<"Returns bool values";
但是没有输出,所以存储在head->next
中的内容是什么?
答案 0 :(得分:0)
首先,您应该为main中的节点类创建一些空间/分配内存。
请注意
node *head;
仅是声明,而不是定义。有关更多详细信息,请查看What is the difference between a definition and a declaration?。
node *head = new node;
head->next = nullptr;
head->data=0;
我仍将其视为Linked lists in C++的副本
答案 1 :(得分:-1)
如果您声明node *head;
,则head是一个未初始化的指针,其中包含一个随机地址。取消引用是未定义行为?
您需要a)初始化head:node *head = nullptr;
,并b)测试该条件:if (head == nullptr) { head = new node; node->head = nullptr; ...