¿Cómo puedo verificar si hay suficiente memoria de almacenamiento disponible?
Tengo una asignación que me obliga a crear una clase "Heap" que asigna y desasigna la memoria. Creo que mi código funciona y que la solución se construye y ejecuta correctamente, pero quiero asegurarme de que no tengo ninguna pérdida de memoria. También necesito agregar algún código que verifique si la cantidad deseada que se asignará al montón está disponible ... si alguien asignara una cantidad muy grande. ¿Cómo es posible verificar si la memoria asignada en el montón está disponible o NULL si no hay suficiente memoria? Aquí está mi código hasta ahora:
#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;
}