Dangling pointers arise when an object is destroyed. Despite being deleted or de-allocated, it still has an incoming reference because the value of the pointer was not modified. The pointer still points to the memory location of the de-allocated memory.
AVOID DANGLING POINTERS
It is easy to avoid dangling pointer errors by setting the pointer to
NULL after de-allocating the memory, so that the pointer no longer stays dangling. Assigning
NULL value to the pointer means it is not pointing to any memory location.
char **Ptr; char *str = "Hi"; Ptr = &str; free (str); /* Ptr now becomes a dangling pointer as str has been freed and Ptr is pointing to a de-allocated memory */ Ptr = NULL; /* Ptr is no more dangling pointer */
Leave a Reply