求教一个最新问题,就是关于释放内存的问题!!

Adonis321 2015-10-16 10:24:53
//释放链表
/*current = Head;

while (current != NULL)
{
free(current);

current = current->Next;
}



老是运行到这一步的时候,会出现:0x0F34B2CE (msvcr120d.dll) (创建链表并删除.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0xFEEEFEE8 时发生访问冲突。这个问题是什么原因啊?
...全文
125 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
橘风之轮 2015-10-16
  • 打赏
  • 举报
回复
你为啥不这样修改呢?
//释放链表
    /*current = Head;
 
    while (current != NULL)
    {
        node* p=current;
        current = current->Next;
        free(p);
    }
jiht594 2015-10-16
  • 打赏
  • 举报
回复
free了current, current->Next就不存在了
Adonis321 2015-10-16
  • 打赏
  • 举报
回复
引用 2 楼 hzk745 的回复:
你为啥不这样修改呢?
//释放链表
    /*current = Head;
 
    while (current != NULL)
    {
        node* p=current;
        current = current->Next;
        free(p);
    }
嗯嗯 我先建立了一个临时变量 就可以了!
Adonis321 2015-10-16
  • 打赏
  • 举报
回复
引用 3 楼 lilhope 的回复:
先把current的内容复制给另一个变量,然后current指向下一条,再释放temp中的内容。
嗯 可以了!!谢谢啦!
lilhope 2015-10-16
  • 打赏
  • 举报
回复
先把current的内容复制给另一个变量,然后current指向下一条,再释放temp中的内容。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧