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.


Anmelden zum Antworten