gpt4 book ai didi

c++ - Purify 在使用 std::list::remove() 时揭示了潜在的空闲内存读取

转载 作者:行者123 更新时间:2023-11-30 04:05:26 26 4
gpt4 key购买 nike

Purify 在使用 std::list::remove() 时揭示了潜在的空闲内存读取。我注意到 std::list::remove() 使用类型的 operator== 来进行比较。但是,我还注意到,如果列表中的第一个元素被传递给 std::list::remove(),它在匹配时被删除,但它仍然用于与列表中的所有其他项目进行比较。这导致 Purify 将其标记为“潜在的空闲内存读取”。我用 erase() 和迭代器替换了 std::list::remove() 调用,这样效率更高,因为它只循环一次而不是我的循环两次情况。

std::list::remove() 保留第一个元素是否有原因?

最佳答案

这是 GCC bug# 17012 , 已在 4.3.0 中修复。另见 Library Working Group Defect Report 526 .

关于c++ - Purify 在使用 std::list::remove() 时揭示了潜在的空闲内存读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23297270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com