搜索链表时出现隔离错误
Segfault when searching through linked list
newnode = head;
tempnode = head;
if (head)
{
while (tempnode)
{
if (tempnode->next != NULL)
{
cout << tempnode->labValue << " ";
tempnode = tempnode->next;
}
}
}
所以我有这段代码来搜索我所做的链表并打印它的值。它成功地打印了每个值,但随后它进入了 sig 错误。我已经看遍了所有地方,每次我尝试一些东西时,我仍然会得到 sig 错误。我假设我收到错误是因为我试图访问不存在的内存,所以我尝试使用 while 循环和 if 语句进行检查,但仍然没有运气。如果这是一个常见问题,我很抱歉,我很沮丧。
链表的末尾可能不是以空结尾的。如果您没有明确将尾节点的下一个指针设置为 null,则下一个指针可能指向垃圾(例如未初始化的数据(。指针值不会为 null,这就是您将进入循环并崩溃的原因。
在 while 循环中放置一个断点并验证这一点。
顺便说一下,将 nullptr
用于空指针值很有用。您还需要在tempnode->next == NULL
的情况下突破 while 循环,因为此时 tempnode 不会为空。
相关文章:
- 从矢量中删除元素后出现隔离错误
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- 线程时访问静态映射时出现隔离错误
- 并行快速排序分区中的隔离错误
- C++多线程程序:变量定义为类成员的隔离错误
- TFLite 隔离错误,通过获取C++输入和输出
- 我只是在寻找模板,在我的书中找到了这段代码,这显示了隔离错误?
- pthread_create中错误 4 的隔离错误
- 递归树遍历/分支删除的隔离错误
- 在类模板上使用 arm gcc 编译期间的隔离错误
- 从大量文件读取时出现隔离错误
- 在PHP扩展中使用emalloc从线程时出现隔离错误
- 通过 Boost Python 在C++对象之间传递共享指针的隔离错误
- 在QT中单击菜单时出现隔离错误
- 尝试访问标头声明成员时出现隔离错误
- 搜索链表时出现隔离错误
- 模板化子类析构函数中的隔离错误
- 插件中节点.js/Nan 回调C++不频繁的隔离错误
- 将行添加到 GTKTreeView 时的隔离错误
- 找不到命令时打开的隔离错误