First-chance exception???



  • Folgnder Fehler kommt im Ausgabefenster... Programm läuft aber trozdem aber was ist das?

    First-chance exception at 0x7c285a6a (mfc71d.dll) in Simulator.exe: 0xC0000005: Access violation reading location 0xccccccd8.



  • Das sieht danach aus, also ob du versucht hast, in einen nicht-initialisierten Zeiger zu schreiben (im Debug-Modus initialisiert MFC solche Variablen mit 0xCC-Folgen - die Position '0xccccccd8' liegt 12 Byte dahinter). Schau dir am besten mal im Debugger an, von wo aus der Fehler auftritt.



  • class x{
    
    funkt(int k, int l){
    
    for( int i=k, k<= l; i++){
    .
    .
    .
    }
    
    };
    
    x *p= new x();
    
    x-> funk(...);
    

    wenn ich die funktion "funk" auf rufe, hat der "this" zeiger eine gültige adrese wund wurd eauch erzeugt. Sobald er aber in die For-Schleif der funk funktion hat der this zeiger plötzluic die 0xccccccccd8 Adresse?

    Was ist das für ein irrer fehler?

    EDIT: Scheinbar führ er aber Operationen mit den Zeiger richtig aus...obwohl er sie als ungütlig markiert (Debug- fenster). Das Ergebnis ist auch richtig.. aber es irritiert mich...



  • BorisDieKlinge schrieb:

    for( int i=k, k<= l; i++){
    

    Was ist denn das (ich hoffe nur ein Fehler beim Abtippen des echten Quelltextes)? Und was für Spielereien veranstaltest du innerhalb der Schleife?
    (btw, wird 'this' schon beim Eintritt in die Schleife au 0xCCCCCCD8 gesetzt oder erst später?)


  • Mod

    Rufst Du evtl. eine Funktion auf, die den Stack zerstört?



  • Was soll denn Zeile 17?
    Evtl. mal den Quellcode ansich posten? Das ist doch nur teilweile wo abgetippt? Siehe for-Schleife?


Log in to reply