Wie kann ich überprüfen, ob genügend Heapspeicher verfügbar ist?
Ich habe eine Aufgabe, für die ich eine "Heap" -Klasse erstellen muss, die Speicher zuordnet und freigibt. Ich glaube, dass mein Code funktioniert und die Lösung ordnungsgemäß erstellt und ausgeführt wird, aber ich möchte sicherstellen, dass keine Speicherlecks auftreten. Ich muss auch einen Code hinzufügen, der prüft, ob der gewünschte Betrag, der dem Heap zugewiesen werden soll, überhaupt verfügbar ist ... wenn jemand einen sehr großen Betrag zuweisen würde. Wie kann überprüft werden, ob der auf dem Heap zugewiesene Speicher verfügbar oder NULL ist, wenn nicht genügend Speicher vorhanden ist? Hier ist mein Code soweit:
#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;
}