AllocateMemory()

Syntax

*MemoryID = AllocateMemory(Größe)
Beschreibung
Reserviert einen zusammenhängenden Speicherbereich mit der angegebenen Größe in Bytes. Der neue Speicherbereich wird anfänglich mit Bytes, welche den Wert 0 enthalten, gefüllt.

Parameter

Größe Gibt die Größe (in Bytes) des neuen Speicherbereichs an.

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 - CompareMemory() ->