Answer Posted / shyamal bose
Memory leaks happens for the memory allocated on Heap(ex A
*temp = new A()) . memory allocated by us on stack (int a)
is released automatically when the function returns or
module goes out of scope.
But memory allocated on heap will not be freed
automatically, we need to release it manually.
ex:
func()
{
A *a = new A(); //on heap
int b; // on stack
}
main()
{
func();
}
Now in above example when func is called memory for "a" is
created on HEAP by using NEW, but it is not freed by using
DELETE, hence is memory leak. On the other hand "b" is
created on STACK & freed automatically. so correct
implementation is:
func()
{
A *a = new A(); //on heap
int b; // on stack
delete a; //deleting memory on heap
}
main()
{
func();
}
Is This Answer Correct ? | 7 Yes | 0 No |
Post New Answer View All Answers
What is an example of genetic polymorphism?
What is coupling in oops?
Why is oop better than procedural?
What is encapsulation with example?
What polymorphism means?
Are polymorphisms mutations?
What is encapsulation in simple terms?
What are the types of abstraction?
What is encapsulation in oop?
Can we create object of abstract class?
What is the use of oops?
What is a class and object?
How to hide the base class functionality in Inheritance?
What does it mean when someone says I oop?
Where is pseudocode used?