Jak mogę sprawdzić, czy dostępna jest wystarczająca ilość pamięci sterty?

Mam zadanie, które wymaga ode mnie utworzenia klasy „Heap”, która przydziela i zwalnia pamięć. Wierzę, że mój kod działa i rozwiązanie buduje się i działa poprawnie, ale chcę mieć pewność, że nie dostanę żadnych wycieków pamięci. Muszę też dodać kod, który sprawdza, czy żądana kwota, która ma być przydzielona do sterty, jest nawet dostępna ... jeśli ktoś miałby przeznaczyć bardzo dużą kwotę. Jak można sprawdzić, czy pamięć przydzielona na stercie jest dostępna, czy NULL, jeśli jest za mało pamięci. Oto mój kod do tej pory:

#include <iostream>
using namespace std;

class Heap{
public:

double* allocateMemory(int memorySize)
{
    return new double[memorySize];
};
void deallocateMemory(double* dMemorySize)
{
    delete[] dMemorySize;
};

};

int main()
{
Heap heap;
cout << "Enter the number of double elements that you want to allocate: " << endl;
int hMemory;
const int doubleByteSize = 8;
cin >> hMemory;

double *chunkNew = heap.allocateMemory(hMemory);

cout << "The amount of space you took up on the heap is: " <<
         hMemory*doubleByteSize << " bytes" << 
     starting at address: " << "\n" << &hMemory << endl; 

heap.deallocateMemory(chunkNew);

system("pause");
return 0;
}

questionAnswers(1)

yourAnswerToTheQuestion