Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Не передайте указатель, который может быть недопустимым (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