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ültigFredy
Sorry fur meine schlechte deutsche Sprache :-))