Fehler tritt nur bei eingeschaltetem Purifier auf.
Code: Alles auswählen
*MemoryID = AllocateMemory(1000)
PokeS(*MemoryID, "Speichere diesen String")
; hier kann noch mehr mit dem Speicherbereich gemacht werden...
;
*NewMemoryID = ReAllocateMemory(*MemoryID, 2000) ; wir brauchen mehr Speicher
If *NewMemoryID
; arbeitet jetzt mit *NewMemoryID mit einer Größe von 2000 Byte
Debug "Der alte Inhalt ist noch vorhanden:"
Debug PeekS(*NewMemoryID)
;
FreeMemory(*NewMemoryID)
Else
; die Größenänderung schlug fehl, wir arbeiten weiter mit *MemoryID (Größe 1000)
;
FreeMemory(*MemoryID)
EndIf
- OS: Windows 7 x64
- Ob mit oder ohne Unicode spielt keine Rolle
- Bei der PB-Version 5.22 tritt dieser Fehler nicht auf
Fehlerberichte vom Debugger:
Purifier On:
[12:12:30] Warte auf den Start des Executable...
[12:12:30] Executable-Typ: Windows - x64 (64bit, Unicode, Purifier)
[12:12:30] Executable gestartet.
[12:12:30] [ERROR] Zeile: 5
[12:12:30] [ERROR] Trying to free or to reallocate a non-allocated memory block
Purifier Off:
[12:15:02] Warte auf den Start des Executable...
[12:15:02] Executable-Typ: Windows - x64 (64bit, Unicode)
[12:15:02] Executable gestartet.
[12:15:02] Die Programmausführung ist abgeschlossen.