leetcode 203 ERROR: AddressSanitizer: heap-use-after-free on address

发布时间:2024年01月05日

出现问题题目:、??、????203. 移除链表元素 - 力扣(LeetCode)

题解:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台?

原因:删除内存后不应该用指针再次使用这块内存

错误代码1:

p=head;
 pre=head;
 while(head&&(head->val==val))
        {
            ListNode *tmp=head;
            head=head->next;
            delete tmp;
           // return head;
            //delete p;
        }
while(p)
{
......
}
       

p先指向head,后面本来的head已经由delete tmp删除,但`while(p)`**又使用了指向原来head的p**,出现错误

错误代码2:

 ListNode *tmp2=p;
 pre->next=p->next;
 delete tmp2;
 p=p->next;

已删除p指向的内存,但仍使用p

正确代码见题解?

?

文章来源:https://blog.csdn.net/2301_81198610/article/details/135334330
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。