Gast
2012-06-08, 13:48:40
Hallo,
Ich bekomme zur Laufzeit meines Programms bei einem Aufruf von malloc() folgende Fehlermeldung:
Unbehandelte Ausnahme bei 0x774e33dd in MyApp.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x0000000101d60075.
Laut Callstack passiert das in einer Funktion _heap_alloc() aus der Sourcedatei malloc.c beim Aufruf einer Funktion HeapAlloc(). HeapAlloc() hat als ersten Parameter eine offenbar globale Variable _crtheap, mit dem Wert 0x0000000101d60001, ich denke mal das ist ein Pointer auf die erste freie Position im Heap. Die Menge der zu allokierenden Bytes ist 2100.
Ich könnte mir vorstellen, dass da versucht wird, 2100 Bytes ab der Adresse 0x0000000101d60001 zu allokieren, und dies daran scheitert, dass an der Adresse 0x0000000101d60075, also nur 0x74 = 116 Bytes weiter, irgendetwas ist, dass dem im Wege steht. Nur: wie kann ich herausfinden, was das sein könnte?
Und was ist die Adresse 0x774e33dd? Ist die von einer Funktion oder eines Codeteils?
Danke für eure Hilfe.
Ich bekomme zur Laufzeit meines Programms bei einem Aufruf von malloc() folgende Fehlermeldung:
Unbehandelte Ausnahme bei 0x774e33dd in MyApp.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x0000000101d60075.
Laut Callstack passiert das in einer Funktion _heap_alloc() aus der Sourcedatei malloc.c beim Aufruf einer Funktion HeapAlloc(). HeapAlloc() hat als ersten Parameter eine offenbar globale Variable _crtheap, mit dem Wert 0x0000000101d60001, ich denke mal das ist ein Pointer auf die erste freie Position im Heap. Die Menge der zu allokierenden Bytes ist 2100.
Ich könnte mir vorstellen, dass da versucht wird, 2100 Bytes ab der Adresse 0x0000000101d60001 zu allokieren, und dies daran scheitert, dass an der Adresse 0x0000000101d60075, also nur 0x74 = 116 Bytes weiter, irgendetwas ist, dass dem im Wege steht. Nur: wie kann ich herausfinden, was das sein könnte?
Und was ist die Adresse 0x774e33dd? Ist die von einer Funktion oder eines Codeteils?
Danke für eure Hilfe.