Предупреждение C26486

Не передайте указатель, который может быть недопустимым (dangling) в качестве параметра функции.

void use(int*);

void ex1()
{
    int* px;
    {
        int x;
        px = &x;
    }

    use(px);  // px is a dangling pointer
}

Замечания

Рекомендации по времени существования основных рекомендаций C++ описывают контракт, который может следовать коду, который позволит обеспечить более тщательную утечку статической памяти и обнаружение указателя. Основными идеями, лежащими в основе рекомендаций, являются следующие:

  • Никогда не разыменовывание недопустимого (dangling) или известного-null указателя
  • Никогда не возвращает (формальный возвращаемый или исходящий параметр) любой указатель из функции.
  • Никогда не передает недопустимый указатель на любую функцию.

Имя анализа кода: LIFETIMES_FUNCTION_PRECONDITION_VIOLATION

См. также