InterviewSolution
| 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.
|
|