list Fehlermeldung



  • Hallo,

    ich verwende eine Liste, in der ich Zeiger auf Objekte speichere, die ich dann informiere, wenn sich was getan hat (Observer- Pattern),
    leider ist mir die "list" nicht ganz geheuer.

    ich habe folgende Methode:

    in der *.h:
    public:
    	list<Observer *> *observer;
    
    in der *.c
    void ZeitGeber::Attach(Observer* observer) {
    	ZeitGeber::observer->push_back(observer);
    }
    

    aber leider bekomme ich folgende Fehlermeldung:

    Zugriffsverletzung beim Lesen an Position 0xcdcdcddd.
    Unbehandelte Ausnahme bei 0x00411e74 in Observer.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcdcdcddd.
    
    der Fehlerzeiger zeigt hier hin:
    iterator end()
    		{	// return iterator for end of mutable sequence
    		return (iterator(_Myhead, this));
    		}
    

    was mach ich da falsch?

    Vielen Dank für Eure Antworten,

    lg



  • PollerCPP schrieb:

    ich verwende eine Liste, in der ich Zeiger auf Objekte speichere

    Ich sehe da keine Liste, nur einen Zeiger. Hast du sichergestellt, dass dieser Zeiger auch auf ein existierendes List-Objekt zeigt?



  • MFK schrieb:

    Ich sehe da keine Liste, nur einen Zeiger...

    ...der an dieser Stelle eh ein wenig fragwürdig ist. Warum verwendet man an der Stelle einen Zeiger und macht sich das Leben schwerer als nötig...

    cu André



  • Wie mach ich dann das? ich muss also ein Objekt erzeugen bzw Speicher allokieren und den Zeiger draufzeigen lassen,
    Wie kann ich das am Besten machen?

    list<Observer *> *observer = new list<Observer>; ???

    Vielen dank für eure Antworten,

    lg



  • Zuviele *'s 🙂 Lass einfach hier mal eins weg: list<Observer *> *observer => list<Observer *> observer;



  • Gibts eigentlich eine fertige Version des Observer- Patterns vom Buch "Entwurfsmuster" von der Gang of four?

    lg



  • PollerCPP schrieb:

    Gibts eigentlich eine fertige Version des Observer- Patterns vom Buch "Entwurfsmuster" von der Gang of four?

    lg

    Da gibts vermutlich viele, aber die meisten werden auf irgendwelche speziellen Beduerfnisse zugeschnitten sein. Gibts im GoF-Buch nicht immer Beispiel-Code-Snippets?

    btw:

    PollerCPP schrieb:

    in der *.h:
    public:
    	list<Observer *> *observer;
    

    Das sieht mir arg danach aus, dass du in der *.h mit using-direktiven gearbeitet hast (eigentlich ists ja std::list). Sowas solltest du vermeiden, mehr dazu hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-205799-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html



  • Gang of Four klingt nach nem Gangbang Trio


Anmelden zum Antworten