What is a dangling pointer and how do you prevent it?
0 upvotes
Practice with AISoon
A dangling pointer points to memory that has already been freed or gone out of scope. Dereferencing it causes undefined behavior — often a crash or silent data corruption.
Common causes: (1) returning a pointer to a local variable, (2) using a pointer after free(), (3) using a pointer to a variable whose scope has ended (e.g., a pointer to a block-scoped variable after the block exits).
Prevention: set pointers to NULL after freeing (free(ptr); ptr = NULL;), never return pointers to local variables, and in RTOS contexts, ensure that task-local data outlives any pointer to it. Static analysis tools (Coverity, Polyspace) can detect many dangling pointer patterns at compile time.
Source: C / C++ Concepts Q&A
