Debug Assertion Failed!



  • Hallo,

    kann mir jemand sagen was diese Fehlermeldung bedeutet?

    http://www.loaditup.de/files/611545.bmp

    Ich habe leider keinen blassen Schimmer. 😞

    Danke für die Mühe!



  • Das bedeutet, daß der Ausdruck "pHead->nBlockUse" zu false (d.h. 0) ausgewertet wurde, obwohl das Programm erwartet hat, daß dort ein Wert drin steht.
    (das gehört vermutlich zu den internen Verwaltungsdaten einer Containerklasse, die du verwendest - und kaputtgemacht hast)



  • CStoll schrieb:

    Das bedeutet, daß der Ausdruck "pHead->nBlockUse" zu false (d.h. 0) ausgewertet wurde, obwohl das Programm erwartet hat, daß dort ein Wert drin steht.
    (das gehört vermutlich zu den internen Verwaltungsdaten einer Containerklasse, die du verwendest - und kaputtgemacht hast)

    Ich habe, so weit ich weiß, nie eine Containerklasse verändert!

    Wie konnte denn das passieren?

    Der Fehler taucht aber nicht immer auf. Nur wenn ich eine bestimmte Methode aufrufe und dann auch nur, wenn ich recht große Datenmengen benutze (so 1.000).


  • Mod

    Kaputtgemacht nicht im Sinne von "Du hast den Code verändert und kaputtgemacht", sondern im Sinne von "falsch benutzt".



  • SeppJ schrieb:

    Kaputtgemacht nicht im Sinne von "Du hast den Code verändert und kaputtgemacht", sondern im Sinne von "falsch benutzt".

    Ah ok. Danke.

    Aber warum taucht der Fehler dann nur ab einer bestimmten Anzahl an Elementen auf?

    Genau dann wenn ich hier etwas einfüge:

    map<pair<Z*,A*>,Z*> kanten;
    
    pair<Z*,A*> p(z1,a);
    kanten[p] = z2;
    


  • Falsches Forum.



  • also erstmal: ich fidne dass pure zeiger in einer map nichts zu suchen haben, nimm entweder normale objekte oder smart pointer, alles andere gibt fehler
    und zweitens 1000 elemente sind nicht gross bzw viel, solange nicht jedes dieser elemente noch eine millionen member hat oder sowas...

    dann bei deinem code schnipsel unten
    was ist p und was ist z??



  • Skym0sh0 schrieb:

    also erstmal: ich fidne dass pure zeiger in einer map nichts zu suchen haben

    Hm. Wieso denn? Ich dachte mir so spare ich Speicherplatz. Die Adressen ändern sich auch nicht.

    Skym0sh0 schrieb:

    und zweitens 1000 elemente sind nicht gross bzw viel, solange nicht jedes dieser elemente noch eine millionen member hat oder sowas...

    Klar, 1000 Elemente sind eigentlich ein Klacks. Es werden auch noch viel mehr. Aber mit 50 Elementen klappt es ohne Probleme. Mit 1000 nicht. Darum bin ich auch so verwundert...

    Skym0sh0 schrieb:

    dann bei deinem code schnipsel unten
    was ist p und was ist z??

    Ich habe versucht ein Graph zu erstellen. Z sollen Knoten sein und A gerichtete Kanten. Da sich die Knoten wiederholen und auch die Kanten, habe ich diese in einer Liste abgespeichert und in der map nur die Pointer auf jene verwendet. Sonst benötigte ich ZxAxZ viel Platz, anstatt nur die Pointer.



  • Das ist wirklich zum Mäuse melken.
    Ich glaube das ist ein Speicherproblem. Das Programm bricht immer an der selben stelle ab. Wenn ich aber den Browser aus mache, dann arbeitet das Programm viel weiter. Und bricht erst später irgendwann ab.

    Ich habe dauernd ein Appcrash. Wie kann man das vermeiden?

    Problemsignatur:
      Problemereignisname:	APPCRASH
      Ausnahmecode:	c0000005
    


  • Ist ja witzig, genau die selbe Fehlermeldung bekomme ich auch gerade (0xc0000005). Siehe meinen Thread http://www.c-plusplus.net/forum/286245. Von daher bin ich an einer Lösung ebenfalls sehr interessiert. Auch ich benutze einen vector mit rohen Zeigern.


Anmelden zum Antworten