1.

What Is A Dangling Pointer In C++?

Answer»

A dangling pointer arises when you use the address of an object after its lifetime is over. This may occur in situations like returning addresses of the automatic VARIABLES from a function or using the address of the memory BLOCK after it is FREED. The following code snippet shows this:

class Sample { PUBLIC:int *ptr; Sample(int i) { ptr = NEW int(i); } ~Sample() { delete ptr; } void PrintValO { cout« "The value is " « *ptr; } }; void SomeFunc(Sample x) { cout« "Say i am in someFunc " « endl; } int main() { Sample si = 10; SomeFunc(sl); sl.PrintVal(); }

In the above example when PrintVal() function is called it is called by the pointer that has been freed by the destructor in SomeFunc.

 

A dangling pointer arises when you use the address of an object after its lifetime is over. This may occur in situations like returning addresses of the automatic variables from a function or using the address of the memory block after it is freed. The following code snippet shows this:

In the above example when PrintVal() function is called it is called by the pointer that has been freed by the destructor in SomeFunc.

 



Discussion

No Comment Found