pointhi
Erfahrenes Mitglied
Hy,
ich arbeite gerade an einem etwas spezielleren system, bei dem ich unter anderem eine objekt-baum-struktur mithilfe eines xml-files erzeugt.
Um rechenleistung, und um vor allem komplexen code zu vermeiden will ich im root-node eine dynamische array mit pointern zu einem speziellen objekten erzeugen( Wenn das objekt instanziert wird trägt es sich automatisch in diese liste ein, und wenn der destruktor aufgerufen wird auch wieder aus).
Das Problem ist nur, sobald ich den pointer mittels insert zu den container hinzufügen will, stürzt das programm wegen speicherverletzung ab, obwohl das in meinem fall verwendete std::set genau so etwas eigentlich verhindern sollte.
Der Code ist OS, weshalb ich hier einfachhalber verlinke:
Das ist der code-teil, in welchem die Objekte ein- und ausgetragen werden können:
https://github.com/pointhi/OpenSens...1ce7a15f771d7/include/OssRootNode.hpp#L68#L83
Hier werden die entsprechenden funktionen aufgerufen:
https://github.com/pointhi/OpenSens...ce7a15f771d7/src/sensor/OssSensor.cpp#L24#L40
Damit man sich wenn nötig leichter zurechtfindet hab ich unter anderem auch eine online doku
Was ich vermute ist, dass ich bei den aufrufenden funktionen einen denkfehler gemacht habe. Ich musste leider einen const_cast durchführen, da der this zeiger meines wissens leider eine const maskierung aufweißt.
Ich hoffe ihr könnt mir helfen
mfg, pointhi
ich arbeite gerade an einem etwas spezielleren system, bei dem ich unter anderem eine objekt-baum-struktur mithilfe eines xml-files erzeugt.
Um rechenleistung, und um vor allem komplexen code zu vermeiden will ich im root-node eine dynamische array mit pointern zu einem speziellen objekten erzeugen( Wenn das objekt instanziert wird trägt es sich automatisch in diese liste ein, und wenn der destruktor aufgerufen wird auch wieder aus).
Das Problem ist nur, sobald ich den pointer mittels insert zu den container hinzufügen will, stürzt das programm wegen speicherverletzung ab, obwohl das in meinem fall verwendete std::set genau so etwas eigentlich verhindern sollte.
Der Code ist OS, weshalb ich hier einfachhalber verlinke:
Das ist der code-teil, in welchem die Objekte ein- und ausgetragen werden können:
https://github.com/pointhi/OpenSens...1ce7a15f771d7/include/OssRootNode.hpp#L68#L83
Hier werden die entsprechenden funktionen aufgerufen:
https://github.com/pointhi/OpenSens...ce7a15f771d7/src/sensor/OssSensor.cpp#L24#L40
Damit man sich wenn nötig leichter zurechtfindet hab ich unter anderem auch eine online doku
Was ich vermute ist, dass ich bei den aufrufenden funktionen einen denkfehler gemacht habe. Ich musste leider einen const_cast durchführen, da der this zeiger meines wissens leider eine const maskierung aufweißt.
Ich hoffe ihr könnt mir helfen
mfg, pointhi