Aufgabe 4: Anfänger


tipp: wenn malloc mit -1 (malloc nimmt unsigned, da gibt es kein -1) kommt und suchst nach nem block der größe (-1)+(deine verwaltungsstruktur) dann findest du einen (7 byte sind in der regel immer noch zu finden) - du musst schauen ob du bei deiner rechnung nicht über INT_MAX drüberaddierst, weil dann wird das ergebnis wieder klein! Also vorsicht, (2^32-1)+8 = 7 (2^32-1 = -1, bei unsigned arithmetik)! In dem Fall musst du nen Fehler melden.


Hat sich mit dem negativen Speicher schon gegeben ich habe nicht bedacht, dass size ( aufgerundet auf mblock Groesse ) - struct mblock bei einem Aufruf von Malloc mit -2. Nicht eine riesige Zahl gibt, sondern 10. Ich krieg leider aber immer noch einen Segmentationfault in Level 3 beim dritten Max-Block Test. Naja ich hab ja noch etwas ueber 5 Stunden.


Ich musste auch eine Zeit lang verzweifelt nach der Ursache für einen Segfault suchen, der darauf zurückzuführen war, dass ein Element der Freispeicherliste ins Nirvana gezeigt hat. Der Grund war bei mir, dass ich in meiner Implementierung von [m]realloc()[/m] beim Verkleinern eines Blocks noch die alte Anzahl von Bytes in den neuen Block kopiert habe. Dadurch wurde der Kopf des nachfolgenden Blocks überschrieben.
Inzwischen hat sich die Sache sowieso gegessen, weil ich beim Verkleinern nichts mehr verschiebe, sondern nur den schon vorhandenen Block verkleinere.


ich krieg bei memstress 4
WARN: Test fehlgeschlagen bei 50000+34!
komisch…


Boah alles funzt sogar Level 4. Ohne Warnungen. Dank Airhard! Ich hatte meinen Fehler auch in realloc() und habe auch beim Verkleinern den Kopf des nachfolgenden Elements ueberschrieben. :slight_smile: Ist das ein Gefuehl 2.5 Stunden vor Abgabe fertig, was soll ich denn jetzt machen?


[quote=Jou]Ist das ein Gefuehl 2.5 Stunden vor Abgabe fertig, was soll ich denn jetzt machen?
[/quote]
Aufgabe 5. :smiley:


will dich nicht erschrecken, aber meiner lief nach kleiner Korrektur auch im level 4, hatte aber trotzdem einen Käfer drin…


Die Abgabe ist schon längst vorbei.
Aber es hat mir nicht geklappt die Aufgabe 4 vollständig richtig zu lösen.
Kann jemand mir bitte ihre Lösung, die ich als Muster benutzen möche, per e-mail avraham_de@yahoo.de zu schicken. Ich möchte mich mit der Lösung auseinnadersetzen, und sehen, wo meine Fehler sind. Vielen Dank im Vorraus!


Siehe
http://wwwcip.informatik.uni-erlangen.de/~simistil/Beispiel_Loesungen/


Danke!