之一狗 2022-03-23 19:35 采纳率: 100%
浏览 27
已结题

为什么要释放Tb,而不是直接修改

img


释放他Tb是为什么,直接Tb->next=p,不就好了,Ta为什么就没有释放,反而直接等于

  • 写回答

3条回答 默认 最新

  • 魔法自动机 2022-03-23 20:10
    关注

    建议画一下结点图,这里Ta和Tb应该指的是不同循环链表的尾指针。

    img

    函数的功能是删掉了Tb的头结点,连接了两个循环单链表,所以Tb->next指向的Tb头结点才要被释放掉,没有指针指向的空间是需要被释放掉的。不再需要的内存未被释放,从而导致空间被浪费,被称为内存泄露。
    而Ta->next原本指向的是Ta的头结点,而Ta的头结点被Tb->next指向了,并不属于没有指针指向的空间,所以不需要释放。

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月1日
  • 已采纳回答 3月24日
  • 创建了问题 3月23日

悬赏问题

  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏