Seite 1 von 1

Bug in AllocateMemory - PB 5.51

Verfasst: 16.02.2017 05:14
von Toshy
Purebasix 5.51 x64
Compiler-Optionen auf Standard
Windows 10

Start mit F5, also Debugger läuft.

Code: Alles auswählen

  *MemoryID = AllocateMemory(5000)
  If *MemoryID
    Debug "Startadresse des 5000 Byte Speicherbereichs ist:"
    Debug *MemoryID
    PokeS(*MemoryID, "Wir speichern diesen String im Speicherbereich")
    FreeMemory(*MemoryID)  ; wird am Ende des Programms auch automatisch erledigt
  Else
    Debug "Konnte den angeforderten Speicher nicht reservieren!"
  EndIf
Klappt alles. Programm läuft normal durch.

Code: Alles auswählen

*MemoryID = AllocateMemory(88)
  If *MemoryID
    Debug "Startadresse des 5000 Byte Speicherbereichs ist:"
    Debug *MemoryID
    PokeS(*MemoryID, "Wir speichern diesen String im Speicherbereich")
    FreeMemory(*MemoryID)  ; wird am Ende des Programms auch automatisch erledigt
  Else
    Debug "Konnte den angeforderten Speicher nicht reservieren!"
  EndIf
Meldung:

Code: Alles auswählen

PureBasic Debugger
Das mit dem Debugger getestete Executable endete unerwartet.
Alle Werte von 1-88 Bytes größe brechen die Ausführung ab.

Auch ohne Debugger schmiert das Programm ab.

Gar nicht lustig ;-)
Kann das jemand nachvollziehen?

NicTheQuick: Verschoben von Bugs zu Anfänger

Re: Bug in AllocateMemory - PB 5.51

Verfasst: 16.02.2017 10:21
von alter Mann
Stichwort Unicode, ein Zeichen im String hat 2 Byte!! - Dur schreibst über den Speicherbereich!