Heap Pointer Problem???



  • Hallo Forum,

    mein Programm bricht immer an einer bestimmen Stelle ab mit der Meldung:

    User breakpoint called from code at 0x7c911230,

    danach wenn ich weiter mache mit F10:

    Expression: _CrtIsValidHeapPointer(pUserData)

    wenn ich dann den Debugger starte zeigt er auf diese Funktion:

    //LinkChek.exe has triggered a breakpoint
    
    extern "C" _CRTIMP void __cdecl free(
            void * pUserData
            )
    {
            _free_dbg(pUserData, _NORMAL_BLOCK);
    }
    

    in Datei: "dbgheap.c"

    was ist mit dem Heap?

    mfg
    Mirsad



  • Hallo,

    wahrscheinlich versuchen Sie einen nich mehr gültigen pointer zu auslösen.

    Fredy



  • Hallo,
    danke für den Hinweis! 👍
    mfg
    Mirsad



  • Hallo, ist das Problem schon gelöst?
    Ab besten in Debugmodus Zeile für Zeile durchgehen und schauen wo der ungültige pointer ausgelöst wird?? 😕

    grüsse
    pixel



  • Noch eine kliene Idee. Gute Gewöhnung nach Lösung der Pointers ist diese Pointers zu annullieren. Ich meine volgendes

    char *mytext = new char[100];
    ...
    strcpy (mytext, ...);
    ...
    delete mytext;
    mytext = NULL;
    ...

    Und jetzt wenn Sie versuchen wieder irgenwo delete diesen Poiter

    delete mytext;

    das macht nicht weil delete (und auch free) ist immun gegen NULL. Aber meinstenst Sie selbs können forthin unterscheiden, ob der Pointer gültig ist oder nicht.

    if (mytext)
    ... mytext ist gültig
    else
    ... mytext ist nicht gültig

    Fredy

    Sorry fur meine schlechte deutsche Sprache :-))


Anmelden zum Antworten