我最近一直在使用PC-lint9来找出不同的错误,这真的让我大吃一惊,但是PC-lint9似乎不能跟踪悬空指针,这是我用来检查的代码的快照。
int* pkInt = new int;
int* pkDangInt = pkInt;
delete pkInt;
( *pkDangInt ) = 1;PC-Lint未检测到错误。我认为配置可能有问题(我没有抑制任何错误并将警告级别设置为3),因为广告上说:“检测悬空和未初始化的指针”。有人知道怎么解决这个问题吗?
发布于 2010-09-10 04:04:02
也许广告应该读作"Detection of dangling...“。假阳性和假阴性之间的古老困境...
现在,我希望你认为PC-lint会检测到任何悬空的指针,它应该会检测到你的一个例子,这确实很简单。但也许下面的结构更简单,而且确实是唯一一种检测到的。你能试一下吗?
int* pkDangInt;
{
int x;
pkDangInt = &x;
}
( *pkDangInt ) = 1;https://stackoverflow.com/questions/3674254
复制相似问题