Referenz - DEALLOCATE
Syntax: DEALLOCATE Pointer
Typ: Anweisung
Kategorie: Speicher
DEALLOCATE gibt einen mit ALLOCATE reservierten Speicher wieder frei.
'Pointer' ist ein Pointer auf den Beginn des freizugebenden Speicherbereichs.
Der Bezeichner des Pointers muss nicht derselbe sein wie der, mit dem der Speicherbereich alloziert wurde; lediglich die Adresse muss dieselbe sein.
Es wird empfohlen, den Pointer sofort null zu setzen, sobald der Speicherbereich freigegeben wurde, um zu verhindern, dass immer noch darauf zugegriffen wird.
DEALLOCATE ist kein Teil der FreeBASIC Runtime Library, sondern ein Alias von free der C-Lib.
Achtung: Es kann nicht garantiert werden, dass diese Funktion auf allen Plattformen Multithreading unterstützt, d.h. thread-safe ist. Unter Windows und Linux sind aktuell durch die verwendeten Implementationen der Betriebssysteme aber keine Probleme zu erwarten.
Beispiel:
DIM AS INTEGER PTR p1, p2
' 4 Bytes reservieren
p1 = ALLOCATE(4)
' p2 soll auf denselben Speicherbereich zeigen
p2 = p1
' den Speicherbereich wieder freigeben; er wurde
' mit p1 erstellt, kann aber mit p2 freigegeben
' werden, da beide auf dieselbe Adresse zeigen.
DEALLOCATE p2
' p1 auf null setzen, um zu verhindern, dass auf
' den inzwischen freigegebenen Speicher
' zugegriffen wird
p1 = 0
Unterschiede zu QB: neu in FreeBASIC
Plattformbedingte Unterschiede:
Es kann nicht garantiert werden, dass die Prozedur auf allen Plattformen thread-safe ist.
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht DEALLOCATE nicht zur Verfügung und kann nur über __DEALLOCATE aufgerufen werden.
Siehe auch:
ALLOCATE, CALLOCATE, REALLOCATE, Pointer, Speicher
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|