azizulhakim
azizulhakim

Reputation: 658

Confusion about Memory deallocation in C++

I'm having some confusion about memory de-allocation in C++. I have a structure

struct Node{
    Node* left;
    Node* right;
};

and I declare a pointer of Node type as:

struct Node* myNode = new Node;

Now if I do a delete myNode does it also de-allocates the left and right pointer inside myNode? If it doesn't, wouldn't it be very tedious if we have a lot of pointers inside Node type and will be very difficult to write code without memory leakage?

Upvotes: 0

Views: 79

Answers (1)

Sebastian Hoffmann
Sebastian Hoffmann

Reputation: 11482

No it wont destruct or deallocate them. However, for such cases you can write a destructor:

~Node()
{
    delete left;
    delete right;
}

An even better approach would be to use smart pointer like std::shared_ptr or std::unique_ptr

Upvotes: 9

Related Questions