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

循环链表实现队列触发Bus Error 10,请求故障原因排查

解答:Bus Error 10的根源与修复

Hey Priyam,我帮你找到了代码触发Bus Error 10的问题所在!

问题核心:未初始化的野指针

你在main函数里声明了Node *head;,但没有将它初始化为NULL。这时候head会是一个「野指针」——指向一块随机的、不属于当前进程的内存地址。

当你第一次调用Enqueue(&head, 3)时,Enqueue函数里的判断:

if((*rear) == NULL) {
 *rear = newNode;
 return;
}

因为head不是NULL(是野指针),所以这个初始化分支不会执行。代码直接走到Node *front = (*rear)->next;,这时候你尝试访问野指针指向的内存的next成员,属于非法内存访问,直接触发了Bus Error 10。

修复方案

只需要在main里给head加上初始化:

Node *head = NULL;

另外,你第三次调用Dequeue时队列已经为空,函数返回-1的逻辑是正常的,不会引发错误,主要问题就是指针未初始化。

内容的提问来源于stack exchange,提问作者Priyam Dhanuka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:43:30