Ich übe Speicherzuweisung und Disk-Management mit C++. Ich habe nur die ganze Arbeit .. es sieht einfach aus und scheint ein bisschen zu einfach zu sein. Ich bin nicht sicher, ob mein Zeiger und meine Zuordnung und Deallocations korrekt sind. Mein Total FreeSpace sieht so aus, als würde es funktionieren, aber es sieht zu einfach aus. Ich brauche nur jemandes Programmiererfahrung. Wenn ich versuche, diesen Code auszuführen, gibt es mir eine Art von Fehler.C++ Speicher Zuweisung/Freigabe und FreeSpace Bug Fehler
Bitte fügen Sie keine neue globale Variable.
const int MMSIZE = 60136;
char MM[MMIZE];
//** Initialize set up any data needed to manage the memory
void initializeMemory(void)
{
//**increments through the POOL_SIZE
for (int a = 0; a < MMSIZE; a++) {
MM[a] = 'NULL';
}
}
// return a pointer inside the memory
// If no chunk can accommodate aSize call onOutOfMemory()
void* allocate(int size)
{
//******NOT SURE*******
int *p = new int;
*p = 5;
return ((void*) 0);
}
// Free up a chunk previously allocated
void deallocate(void* mPointer)
{
//******NOT SURE*******
int *p = new int;
delete p;
p = 0;
p = new int(10);
}
//Scan the memory and return the total free space remaining
int remaining(void)
{
//******NOT SURE*******
int free = 0;
for (int a = 0; a < MMSIZE; a++)
{
if (MM[a] < MMSIZE)
{
free += a;
}
}
int free2 = free - MMSIZE;
return free2;
}
Warum glauben Sie, dass dieser Code etwas Nützliches bewirkt? – immibis
Ich glaube nicht, dass OP solche Behauptungen hat - es sieht so aus, als würde OP mit der Speicherzuweisung experimentieren und experimentieren. – rrauenza
Ich weiß nicht, welchen Compiler Sie verwenden, aber es kompiliert nicht unter g ++. 'MM [a] = 'NULL';' ist nicht gültig. Weder ist 'char MM [MMIZE];'. Bitte schreiben Sie Code, der tatsächlich kompiliert wird. Sie haben auch keine 'main()'. – rrauenza