Ich versuche, eine init_allocator()
Funktion zu implementieren, die den Speicherzuordner initialisiert und einen Teil der _length
Bytes zur Verfügung stellt. Der Zuordner verwendet eine _basic_block_size
als minimale Zuordnungseinheit. Die Funktion gibt die dem Zuordner zur Verfügung gestellte Speichermenge zurück. Wenn ein Fehler aufgetreten ist, wird 0
zurückgegeben.Speicherzuordner initialisieren in C
Dies ist, was ich bisher:
int memAvail; // amount of memory to be made available to allocator
unsigned int init_allocator(unsigned int _basic_block_size, unsigned int _length){
if (_basic_block_size < _ length){
memAvail = _length/_basic_block_size;
return memAvail;
}
else{
return 0;
}
}
Ich weiß nicht, ob dies die richtige Umsetzung ist, aber es scheint mir recht. Gibt es etwas, was ich falsch mache? Soll ich Zeiger benutzen? Jeder Rat würde geschätzt werden.
Ihre Anforderungen sind unklar, aber die meisten Speicherunterzuordner machen ein bisschen mehr. Sie sollten beispielsweise Ihre OS-API für die Verwaltung eines großen Speicherblocks aufrufen. –
Ich sollte einen trivialen Speicherzuordner implementieren. Ich bin mir nicht sicher, was OS AP1 bedeutet – carl123