我一直在使用PC-LINT9来查找不同的错误,这确实让我想到了,但是PC-LINT9似乎无法追踪悬空指针,这是我检查的代码的快照。

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

没有PC-lint检测到的错误。我认为该配置可能有问题(我没有抑制任何错误,并将警告级别设置为3),因为广告说:“检测悬挂和非直接化指针”。有人知道如何解决这个问题吗?

有帮助吗?

解决方案

广告可能应为“检测 一些 悬空...

现在,我希望您认为PC-LINT将完全检测到任何悬空指针,它应该检测到您的例子,这确实很简单。但是,下面更结构性的也许更容易,而且确实是唯一检测到的类型。你能尝试吗?

int* pkDangInt;
{
  int x;
  pkDangInt = &x;
}
( *pkDangInt ) = 1;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top