Let us try to understand the overloading of new and delete operator for arrays using below example. #include <iostream>using namespace std;void* operator new(size_t sz) { cout << “Global Memory Allocation: ” << sz << endl; void* ptr = malloc(sz); return ptr;}void operator delete(void* ptr) { cout << “Global memory Deallocation” << endl; free(ptr);}class Memory { enum { mem_size = 10 }; int arr[mem_size];public: Memory() { cout << “Memory C’tor” << endl; } ~Memory() { cout << “Memory D’tor” << endl; } void* operator new(size_t sz) { cout << “Class Memory…