Problem beim lesen von Werten aus unique_ptr
-
Momentan hab ich da ein Problem in meinem Projekt. Ich bekomme immer die Meldung "Signal: SIGSEGV (Segmentation fault)". Und ich habe eventuell eine Vermutung wieso.
Ich habe eine Texture Manager Klasse mit folgender Map
std::map<std::string, std::unique_ptr<Texture>> m_LoadedTextures;hier werden alle Texturen die gebraucht werden geladen. In der Klasse Texture gibt es eine Methode die getRectangle heißt. Diese liefert mir einen Pointer auf ein SDL_Rect aus der Texture Klasse.
Beim debuggen bleibe ich dann immer genau hier hängen.
SDL_Rect *rect = m_TextureManager->getRectangle(id);SDL_Rect *Ghuul::TextureManager::getRectangle(const std::string &id) { return m_loadedTextures.at(id)->getRectangle(); }Kann es sein, dass ich keinen 2 Pointer auf diese Texture Klasse zeigen lassen kann? Hab schonmal auf shared_ptr umgestellt, hatte aber das gleiche Ergebnis.
Will ja eigentlich nur das SDL_Rect aus dem Texture Objekt.
-
Bennisen schrieb:
Beim debuggen bleibe ich dann immer genau hier hängen.
Damit weiß dann jetzt ja jeder, was passiert.
Kann es sein, dass ich keinen 2 Pointer auf diese Texture Klasse zeigen lassen kann?
Pointer zeigen auf Objekte, nicht auf Klassen.
Wo lässt du zwei Pointer auf ein Objekt zeigen?Zu prüfen wäre, ob m_TextureManager und der Mapeintrag gültige Pointer sind.
-
Problem lag woanders. Trotzdem danke.