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