You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++实现链表尾部插入节点时程序持续崩溃如何解决

问题原因

崩溃的根因是空指针解引用:
现有遍历逻辑的循环终止条件为traverser != nullptr,循环执行结束后traverser的值已经是nullptr,此时执行traverser->next = newNode属于对空指针做成员访问,直接触发程序崩溃。

修复方案

将遍历的循环终止条件修改为traverser->next != nullptr即可,修改后循环结束时traverser会指向链表的最后一个有效节点,此时给next赋值新节点可正常完成尾插操作。

修改后的insert函数参考代码:

void SymbolTable::insert(string id)
{
  Node *traverser = &(this->head);
  // 遍历到最后一个节点停下
  while (traverser->next != nullptr) { 
    traverser = traverser->next; 
  }

  Node *newNode = new Node();
  newNode->id = id;
  newNode->next = nullptr;
  traverser->next = newNode;
}

内容的提问来源于stack exchange,提问作者Tan Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:15:03