【问题标题】:Gimpel's PC-lint can't trace dangling pointer?Gimpel 的 PC-lint 无法追踪悬空指针?
【发布时间】:2010-09-09 06:23:28
【问题描述】:

我最近一直在使用 PC-lint9 找出不同的错误,这让我大吃一惊,但似乎 PC-lint9 无法跟踪悬空指针,这是我检查的代码的快照。

int* pkInt = new int;
int* pkDangInt = pkInt;
delete pkInt;
( *pkDangInt ) = 1;

PC-Lint 没有检测到错误。 我认为配置可能有问题(我没有抑制任何错误并将警告级别设置为 3 ),因为广告说:“检测悬空和未初始化的指针”。 有谁知道如何解决这个问题?

【问题讨论】:

    标签: static-analysis lint pc-lint


    【解决方案1】:

    广告可能应该读作“检测some dangling...”。假阳性和假阴性之间的旧困境......

    现在,我希望您认为 PC-lint 会检测到任何悬空指针,它应该检测到您的示例,这确实相当简单。但也许更具结构性 下面的一个更容易,实际上是唯一检测到的。可以试试吗?

    int* pkDangInt;
    {
      int x;
      pkDangInt = &x;
    }
    ( *pkDangInt ) = 1;
    

    【讨论】:

    • 感谢 Cuoq。现在我可以尝试另一种方式,而不是试图弄清楚如何让它发挥作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多