-
在进行代码提交时,出现下面的问题:

这里是链表节点放在了priority_queue中,将它们拿出来并进行连接的操作。 -
本以为这里的
heap提示错误是我自己使用的priority_queue有问题,但实际上不是,通过下面的部分可以看到:

因为使用cout << "hhh" << endll;打印的地方已经很靠近结尾了,但仍然输出正常,所以应该是该打印的后面部分有问题,即最后一句return newhead;了。 -
测试一下
newhead,因为这是一个链表的头节点,所以打印一下整个链表看一看。

发现问题了,是从priority_queue中拿出的最后一个节点的next没有置为nullptr,所以导致链表循环了。 -
修正:最后一个节点的
next置为nullptr,问题解决了。

ERROR: AddressSanitizer: heap-use-after-free on address 0x502000000078 at pc 0x55b9ce843756 ...
C++链表使用后释放错误问题解决

被折叠的 条评论
为什么被折叠?



