V2002. Consider using the 'Ptr' version of the 'foo' function here.


Данное диагностическое предупреждение добавлено по просьбе пользователей.

Анализатор позволяет обнаружить вызов функций, у которых существует 'Ptr' аналог. Имеются в виду функции, имеющие в составе своего названия суффикс Ptr. Примеры расширенных функций: SetClassLongPtr, DSA_GetItemPtr.

Рассмотрим исходный код:

void foo(int a);
void fooPtr(int a, bool b);
void foo2();
...
void test()
{
  foo(1); // V2002
  foo2(); // OK
}

В месте вызова функции "foo", будет выдано диагностическое сообщение V2002, так как имеется функция с тем же именем, но оканчивающаяся на "Ptr". Функция "foo2" не имеет альтернативного варианта, и диагностическое сообщение выдаваться не будет.

Сообщение V2002 будет также выдано для случая:

void fooA(char *p);
void fooPtrA(char *p, int x);
...
void test()
{
  fooA(str); // V2002
}

Родственным диагностическим сообщением является V2001.

Согласно Common Weakness Enumeration, потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как CWE-477.


Найденные ошибки

Проверено проектов
361
Собрано ошибок
13 417

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;