From: Mathias Waack (mathias_at_atoll-net.de)
Date: 10. Apr 2002
On Wednesday 10 April 2002 12:24, Alexander Holler wrote:
> Versteh ich nicht ganz, aber so wie du das beschreibst sollte folgendes
> funktionieren:
>
> void *malloc (void * speicher) {return speicher;}
>
> Ist natürlich ein Witz aber mehr Funktionalität kann ich deinen
> Beschreibungen nicht entnehmen.
Das macht doch nichts. Und es ist auch gar nicht so falsch. Natuerlich soll
das malloc so aussehen wie malloc(3), also braucht man noch so eine Art
void set_base(void *speicher)
und dann geht
void* mmalloc(size_t size) { return speicher; }
Natuerlich sollte das mmalloc pruefen, ob genug Speicher da ist. Ach ja, die
Richtung in die Adressen wachsen, ist optional. Evtl. muss da also eher stehen
void* mmalloc(size_t size) { return (char*)speicher - size; }
Natuerlich muss das mmalloc Buch fuehren, es gibt ja schliesslich noch ein
mfree. Und spannend wird es, wenn jemand auf die Idee kommt, das mmalloc
zweimal aufzurufen. Und richtig spannend wird es, wenn jemand auf die Idee
kommt, eine ganze Reihe von mmalloc und mfree Aufrufen zu mischen. Zuletzt
bleibt noch die Frage, was macht das mmalloc, wenn kein Speicher mehr da ist?
Ich faende es schoen, wenn es mich dann fragen taete. Evtl. geb ich ihm dann
noch etwas mehr. Ach ja, und richtig nett waere es, wenn ich ihm den Speicher
auch wieder wegnehmen koennte - vorausgesetzt er ist nicht belegt.
Also Du siehst, Du warst wirklich dicht dran. Es fehlen nur unwesentliche
Kleinigkeiten. Die zu implementieren bin ich aber nichtsdestotrotz zu faul
und so suche ich halt weiter.
Mathias
Dieses Archiv wurde generiert von hypermail 2.1.2 : 10. Apr 2002 CEST