dynamische Objekte und Pointer in Array und Index umwandeln



  • Ich habe einen Haufen Objekte, die jeweils mehrere dynamische Pointer auf andere Objekte besitzen.

    Nun will ich alles speichern und muss mich daher von den dynamischen Speicheradressen der Objekte trennen.
    Das neue Format währe dann ein Array aus Objekten. Die Pointer auf andere Objekte müssen dann von einer Speicheradresse zu einem Array-Index umgewandelt werden.

    Und dass ist nun etwas verzwickter als ich gedacht habe.

    Die beste Lösung die mit eingefallen ist, ist eine extra Index-Variable in jedem Objekt. Diese Variable würde vor dem speichern gesetzt werden, und jedem Objekte für diesen Moment eine vortlaufende Number, also ihre Position im Array, verraten.

    Anschließend können Objekte den Index andera Objekte in dieser Form auslesen:
    objekt->objektPointer->ArrayIndex

    Der Nachteil ist der zusätzliche Speicherverbrauch für Variablen die nur während des Speicherns verwendung finden. (Macht schon etwas aus bei sehr vielen kleinen Objekten)

    Auch wenn ich damit schon recht zufrieden bin, stelle ich hier mal die Frage ob es dafür eventuell eine bessere Lösung gibt?



  • Du speicherst doch nacheinander... Dann sollte die Reihenfolge also der Index beim laden wieder klar sein.


Log in to reply