[previous] 3230 [next] Address of automatic object assigned to local pointer with static storage duration.
Pointers REFERENCE - ISO:C90-6.1.2.4 Storage Durations of Objects

The address of a local automatic object is being assigned to a local pointer which has static storage duration. This is dangerous. When the local object goes out of scope, the value obtained by dereferencing this pointer will be undefined. Perhaps this object needs to be declared with static storage duration also?

For example:


/*PRQA S 2017,2211,3203,3223,3408,3447 ++*/

void f(void)
{
    static int* pi;
    int a;

    pi = &a;                           /* Message 3230 */
}

See also:

QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents