关于出列的一些疑问

关于出列的一些疑问

在写出列时忘了写

if(q->front->next == NULL){     q->rear = q->front; }

更新队尾

编译过了 执行时候报了段错误

我是通过printf打印看代码执行到哪一行错误

发现好像并没有执行到调用出列的方法就抛出错误了?

这是为什么


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
大白老师 2023-05-25 10:58:31

我刚刚把出队你上的带你屏蔽了测试,我这边测试的结果段错误确实是在出队的时候触发的。详见下面截图。

如果代码是在出对前出现对错误,需要你这边详细看看代码,我推测有两种可能:
1. 编译器优化的结果。
2. 说明在你入队的时候代码可能就有问题,只不过编译器没有触发。
我把我完整的代码贴出来。你可以对比看看。

https://img1.sycdn.imooc.com//climg/646ecd0b0901e37718450851.jpg

https://img1.sycdn.imooc.com//climg/646ececb0925b73b06130804.jpg

https://img1.sycdn.imooc.com//climg/646ecf5209e27ac906951498.jpg


  • 提问者 我喂自己袋盐69 #1
    如果出现编译通过,但是执行报段错误这种情况,我现在能想到的都是都过printf开定位出错的代码行,请问老师还有什么能够方便定位代码错误的地方吗,或者能看到更具体错误保存的信息的地方或者调试方法
    2023-05-25 11:04:30
  • 中年猿叔 回复 提问者 我喂自己袋盐69 #2

    gdb调试短错误

    2023-05-26 18:20:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师