引发了异常: 写入访问权限冲突。 **p** 是 nullptr。

void JudgeGrap(struct Mine* h)
{
    struct Mine* p = h;
    //判断抓到那个物品
    for (int i = 0; i < MAX_MINE; i++)
    {
        if (p->flag == true &&hok.endx > p->x && hok.endx<p->x + p->size
            && hok.endy>p->y && hok.endy < p->y + p->size)
        {
            hok.index = i;
            break;
        }
        p = p->next;
    }
    
    p = h;
    //如果抓到了
    if (hok.index != -1)
    {
        int u = 0;
        if (u == 0)
        {
            sole.num = 0;
            u = 1;
        }
        for (int i = 0; i < 10; i++)
        {        
            p = p->next;
        }
        hok.state = M_SHORT;
        p->x = hok.endx;问题在这里会显示引发了异常: 写入访问权限冲突。
**p** 是 nullptr。求大佬解答,谢谢!

        p->y = hok.endy;
        
        sole.num = sole.num + 1;
        //缩短完成
        if (distance(hok))
        {
            if (p->gold == 1)
            {
                sole.coin = 0;
            }
            else
            {
                sole.coin = sole.coin + p->gold;
            }
            p->flag = false;
            hok.index = -1;
            hok.state = M_NOMAL;
        }
    }
    p = h;
}

整个链表有几个节点呀?如果刚好10个节点,p应该已经是nullptr了呀。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

for循环10次是为什么,如果你是要取链表最后的节点

while(p->next != NULL)

      p = p->next;