description | title | ms.date | ms.topic | f1_keywords | helpviewer_keywords | ms.assetid | author | ms.author | ||
---|---|---|---|---|---|---|---|---|---|---|
Learn more about: C26486 LIFETIMES_FUNCTION_PRECONDITION_VIOLATION |
C26486 |
12/14/2018 |
conceptual |
|
|
d5395efc-5eb2-4e82-9b45-fcd5ff4577bf |
kylereedmsft |
kylereed |
Don't pass a pointer that may be invalid (dangling) as a parameter to a function.
void use(int*);
void ex1()
{
int* px;
{
int x;
px = &x;
}
use(px); // px is a dangling pointer
}
The Lifetime guidelines from the C++ core guidelines outline a contract that code can follow which will enable more thorough static memory leak and dangling pointer detection. The basic ideas behind the guidelines are:
- Never dereference an invalid (dangling) or known-null pointer
- Never return (either formal return or out parameter) any pointer from a function.
- Never pass an invalid (dangling) pointer to any function.