gpt4 book ai didi

c++ - 用于查找指针何时超出范围的程序和技术

转载 作者:太空狗 更新时间:2023-10-29 20:17:52 25 4
gpt4 key购买 nike

我是一名软件实习生,从事一个大型 C++ 项目,而且我还是一个单人团队。令人生畏(你是这么拼的吗 :P),是的,但也很有趣。

我遇到了最终指向 NULL 的 C++ 指针(不是因为内存被释放/删除了,而是因为,我真的不知道,但我怀疑是因为我指向的对象被更新了,因此最初分配的指针未指向正确的内存地址。

如您所见,我自己也很困惑,这就是为什么我想了解技术或免费程序,它们可以帮助我确定指针何时何地指向 null 或失效范围(悬空指针?这是怎么回事)。

也许我可以只使用一个简单的 ASSERT 调用来确定指针何时为空?

更多信息:现在我的问题是我有一个类,它的成员变量是指针。它们在构造函数中初始化,在构造函数结束时,这些指针指向正确的对象。但是在对事件的 react 中,当我查看这些指针时,它们是空的/超出范围。我可以确定这一点,因为 1. 程序崩溃 & 2 eclipse 调试器将它们显示为红色空心圆圈(我认为这意味着指向 NULL 或超出范围?)。

最佳答案

我建议使用两种不同的工具:

  • Cppcheck是一个静态分析器,它查看您的源代码并尝试找出问题(使用指针,以及许多其他东西)。

  • Valgrind是一个运行时工具,它监视程序执行的所有分配和释放,并确保它们都是正确的。

关于c++ - 用于查找指针何时超出范围的程序和技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739163/

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