c++打印链表,分段故障
C++ printing linked list , segmentation fault
void Print(Node *head)
{
if (head = NULL)
{
cout << "NULL";
}
else
{
cout << head->data << endl;
head = head->next;
while (head->next != NULL)
{
cout << head->data << endl;
head = head->next;
}
cout << "NULL";
}
}
我假设
这一行if ( head = NULL )
是转录代码时的错误,并且您的工作代码使用
if ( head == NULL )
我看到的真正的错误是你使用了
cout << head->data << endl;
head = head->next;
while (head->next != NULL) // This line is not good
{
cout << head->data << endl;
head = head->next;
}
cout << "NULL";
那条线总是会是个问题。在某一时刻,head
将等于NULL
,您将尝试访问NULL
指针。
将该代码块更改为:
while (head != NULL)
{
cout << head->data << endl;
head = head->next;
}
cout << "NULL";
实际上,整个函数可以是:
void Print(Node* head)
{
while (head != NULL)
{
cout << head->data << endl;
head = head->next;
}
cout << "NULL";
}
我看到的一个问题是你将NULL赋值给head
if (head = NULL)
必须是if (head == NULL)
相关文章:
- 分段故障(堆芯转储)矢量
- 数组的指针从不分段故障
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 分段故障背包问题
- 分段故障 11,从类函数显示动态 C 字符串
- 面临分段故障 使用 ffmpeg 读取视频时,因为"pFormatCtx-> streams [i]-> codecpar"的地址0x00
- 在C++中,当指向删除和指向不同对象时,分段故障指针
- 分段故障说明
- 分段故障(核心转储)-不知道为什么
- 分段故障线程
- hiredis SET遇到分段故障
- 分段故障,合并排序算法
- 多线程程序中的分段故障和gdb回溯上的不完整信息
- 到达主C++之前分段故障
- 分段故障核心使用 IF流转储
- 使用向量的移动键盘排列(分段故障)
- 在二进制树插入和遍历期间,我得到了分段故障
- 分段故障在类之间返回整数
- C++分段故障BST