Gimpel的PC-lint无法追踪悬空指针?

时间:2010-09-09 06:23:29

标签: static-analysis lint pc-lint

我最近一直在使用PC-lint9找出不同的错误而且它真的让我大吃一惊,但似乎PC-lint9无法追踪悬空指针,这里是我考试的代码的快照。

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

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

1 个答案:

答案 0 :(得分:0)

广告可能应该被理解为“检测某些悬空......”。假阳性和假阴性之间的旧困境......

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

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