Warning C26489
Don't dereference a pointer that may be invalid.
int ex1()
{
int* px;
{
int x = 0;
px = &x;
}
return *px; // 'px' was invalidated when 'x' went out of scope.
}
Remarks
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.