Como posso verificar se há memória heap suficiente disponível?

Eu tenho uma tarefa que requer que eu crie uma classe "Heap" que aloca e desaloca a memória. Acredito que meu código funciona e a solução foi criada e executada corretamente, mas quero ter certeza de que não estou tendo vazamentos de memória. Eu também preciso adicionar algum código que verifique se a quantidade desejada a ser alocada para o heap está disponível mesmo ... se alguém fosse alocar uma quantia muito grande. Como é possível verificar se a memória alocada no heap está disponível ou NULL se não houver memória suficiente. Aqui esta o meu codigo ate agora:

#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;
}