New and delete c++ – How does New and Delete Operator works Internally ?

Dynamic memory application:

New and delete c++: In C/C++, dynamic memory allocation refers to memory allocation performed manually by the programmer. Heap is reserved for dynamically allocated memory, while Stack is reserved for non-static and local variables.

New operator:

A request for memory allocation on the Free Store is denoted by the new operator. If memory is available, the new operator initialises it and returns the address of the newly allocated and initialised memory to the pointer variable.

Delete operator:

Delete is an operator used for destroying objects created with new expression and array and non-array objects.

Working of new and delete operator

1)Implementation of new and delete operator

#include <iostream>
using namespace std;
// Taking a class for memory allocation
class memoryAllocationExample {
public:
    memoryAllocationExample()
    {
        cout << "sample constructor in "
                "memoryAllocationExample class"
             << endl;
    }
    ~memoryAllocationExample()
    {
        cout << "sample Destructor in "
                "memoryAllocationExample class"
             << endl;
    }
};
int main()
{ // using new operator to allocate memory
    memoryAllocationExample  * sample_ptr
        = new memoryAllocationExample();
    // using delete to delete the newly allocated memory
    delete sample_ptr;
    return 0;
}

Output:

sample constructor in memoryAllocationExample class
sample Destructor in memoryAllocationExample class

2)Internal operations of new:

New operator assigns the size (type size) of the heap in the first step by calling new operator (). Operator new() takes the parameter size t and returns the newly assigned memory pointer.
In the second stage, the new operator initialises the memory by calling the builder of the class.

3)Internal operations of delete:

In the first step delete operator by calling the destructor of this type/class, de-initialize this memory.
The operator removes the heap memory by calling the removal operator in the second step ().

Overloading New and Delete Operators at Global and Class level

Related Programs: