AllocateMemory()

Syntax

*MemoryID = AllocateMemory(Größe [, Flags])
Beschreibung
Reserviert einen zusammenhängenden Speicherbereich mit der angegebenen Größe in Bytes. Der neue Speicherbereich wird gelöscht und mit Nullen gefüllt.

Parameter

Größe Die Größe (in Bytes) des neuen Speicherbereichs.
Flags (optional) Dies kann einer der folgenden Werte sein:
  #PB_Memory_NoClear: füllt den neuen Speicherbereich nicht mit Nullen. Dies kann für eine schnellere Allokation
                      sorgen, wenn der zugewiesene Speicher sofort verwendet wird.

Rückgabewert

Gibt die Adresse des reservierten Speichers zurück, oder Null wenn der Speicher nicht reserviert werden konnte.

Anmerkungen

Der Befehl FreeMemory() kann verwendet werden, um den reservierten Speicher frei, d.h. zurück an das System, zu geben. Der ReAllocateMemory() Befehl kann benutzt werden, um die Größe des reservierten Bereichs zu ändern. Alle reservierten Speicherbereiche werden automatisch freigegeben, wenn das Programm beendet wird.

Hinweis: Wenn das Programm bei diesem Befehl abstürzt, ist dies gewöhnlich das Ergebnis eines Speicherfehlers (englisch "Memory corruption") zu einem früheren Zeitpunkt im Programm, indem dort in einen Bereich außerhalb des reservierten Speicherbereichs geschrieben wurde. Solch ein Fehler kann mit Hilfe des Purifier Debugger-Tools bis auf die eigentliche Ursache eingegrenzt werden.

Beispiel

  *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

Siehe auch

ReAllocateMemory(), FreeMemory(), MemorySize()

Unterstützte OS

Alle

Memory Inhaltsverzeichnis - AllocateStructure() ->