Answers

Question and Answer:

  Home  C++ Programming

⟩ What is a dangling pointer in C++?

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 PrintVal()

{

cout << "The value is " << *ptr;

}

};

void SomeFunc(Sample x)

{

cout << "Say i am in someFunc " << endl;

}

int main()

{

Sample s1 = 10;

SomeFunc(s1);

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

 229 views

More Questions for you: