m0_63479487 2021-11-27 12:26 采纳率: 0%
浏览 37

双向链表运行出现代码越界问题,求解答!!

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
void DeleteNode(struct Node *Head,char *Name)
{
    Node *p=NULL;
    p=Head;
    for(int i=0;i<NodeCount;i++)
    {
        if(strcmp(p->Name,Name)==0)
        {
            if(p==Head)
            {
                p=Head->next;
                free(Head);
                newHead=p;
                Head=newHead;
                NodeCount--;
                printf("删除成功");
                return;
            }
            if(p->next==NULL)
            {
                p->pre->next=NULL;
                free(p);
                NodeCount--;
                printf("删除成功");
                return;
            }
            p->pre->next=p->next;
            p->next->pre=p->pre;
            free(p);
            NodeCount--;
            printf("删除成功");
            return;
        }
        p=p->next;
    }
    printf("没有找到数据");
}

运行结果及报错内容

0xC0000005: 写入位置 0 时发生访问冲突

我的解答思路和尝试过的方法

已经搜索过 说是可能因为代码越界问题,但是不知道怎么更改!求解答

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-11-27 12:57
    关注

    你得先检查p是否为空,否则p->next就崩了

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月27日

悬赏问题

  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败