PC-Lint Gimpel не может проследить висячий указатель?

StackOverflow https://stackoverflow.com/questions/3674254

  •  01-10-2019
  •  | 
  •  

Вопрос

Я использовал PC-Lint9, чтобы выяснить разные ошибки в последнее время, и он действительно взорвал мой разум, но кажется, что PC-Lint9 не может проследить висячий указатель, вот снимки кода I экзамен.

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