V506. Pointer to local variable 'X' is stored outside the scope of this variable. Such a pointer will become invalid.
The analyzer found a potential error related to storing a pointer of a local variable. The warning is generated if the lifetime of an object is less than that of the pointer referring to it.
The first example:
class MyClass
{
size_t *m_p;
void Foo() {
size_t localVar;
...
m_p = &localVar;
}
};
In this case, the address of the local variable is saved inside the class into the m_p variable and can be then used by mistake in a different function when the localVar variable is destructed.
The second example:
void Get(float **x)
{
float f;
...
*x = &f;
}
The Get() function will return the pointer to the local variable that will not exist by the moment.
This message is similar to V507 message.
This diagnostic is classified as:
|
You can look at examples of errors detected by the V506 diagnostic. |