写入访问权限冲突,p是nullptr

int free_link(LINE*& head)
{
    LINE* p = head;
    do
    {
        p->data = NULL;(引发了异常:写入访问权限冲突 p是nullptr)
        free(p->data);
    }     while ((p = p->next) != NULL);
    head->next = NULL;
    return 0;
}

这种情况该怎么改呀

加上判断p是否为空

if(p!=NULL)//加上这行
 while (p != NULL);
    {
        if(p->data != NULL)
              free(p->data);
      
        p->data = NULL;
        p=p->next;
    }     

你先p->data = NULL;在free 本来就是错误的

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632