我最近一直在使用PC-lint9找出不同的错误而且它真的让我大吃一惊,但似乎PC-lint9无法追踪悬空指针,这里是我考试的代码的快照。
int* pkInt = new int;
int* pkDangInt = pkInt;
delete pkInt;
( *pkDangInt ) = 1;
PC-Lint没有检测到错误。 我认为配置可能有问题(我没有抑制任何错误并将警告级别设置为3),因为广告上写着:“检测悬空和未初始化的指针”。 有谁知道如何解决这个问题?
答案 0 :(得分:0)
广告可能应该被理解为“检测某些悬空......”。假阳性和假阴性之间的旧困境......
现在,我希望你认为PC-lint会检测到任何悬空指针,它应该检测一个你的例子,这确实相当简单。但也许更具结构性 下面的一个更容易,实际上是唯一检测到的。你能试试吗?
int* pkDangInt;
{
int x;
pkDangInt = &x;
}
( *pkDangInt ) = 1;