Referenz - ERASE
Syntax: ERASE Array [, Array [,...]]
Typ: Anweisung
Kategorie: Speicher
ERASE löscht dynamische Arrays aus dem Speicher oder setzt alle Elemente eines statischen Arrays auf 0 bzw. auf den Initialisationswert. Es dürfen beliebig viele Array-Bezeichner angegeben werden.
Beispiel:
type MyUdt
as integer x, y
declare constructor
declare constructor(xx as integer, yy as integer)
end type
constructor MyUdt
this.CONSTRUCTOR(1, 2)
end constructor
constructor MyUdt(xx as integer, yy as integer)
this.x = xx
this.y = yy
end constructor
dim zahl(2) as integer = {0, 1, 2}
dim text(2) as string = {"a", "b", "c"}
redim dynamisch(2) as integer
dim udt(2) as MyUdt
udt(0) = MyUdt(9, 9)
udt(1) = MyUdt(8, 8)
udt(2) = MyUdt(7, 7)
' Arrays ausgeben
print "zahl()", "text()", "udt()"
for i as integer = 0 to 2
print zahl(i), text(i), udt(i).x & "/" & udt(i).y
next
print "Adresse von dynamisch(): " & @dynamisch(0)
print
' Arrays löschen und erneut ausgeben
erase zahl, text, udt, dynamisch
print "zahl()", "text()", "udt()"
for i as integer = 0 to 2
print zahl(i), text(i), udt(i).x & "/" & udt(i).y
next
print "Adresse von dynamisch(): " & @dynamisch(0)
sleep
Ausgabe:
zahl() text() udt()
0 a 9/9
1 b 8/8
2 c 7/7
Adresse von dynamisch(): 143869584
zahl() text() udt()
0 1/2
0 1/2
0 1/2
Adresse von dynamisch(): 0
Achtung: Wird ein statisches Array als Parameter an eine Prozedur übergeben, so wird es dort als dynamisches Array angesehen. Die Verwendung von ERASE führt dann zu einem Speicherzugriffsfehler.
Unterschiede zu früheren Versionen von FreeBASIC:
- Seit FreeBASIC v0.24 muss ein UDT einen Standard-Konstruktor besitzen, wenn ein UDT-Array mit ERASE gelöscht werden soll.
- Vor FreeBASIC v0.11 war der Einsatz von ERASE nur für dynamische Arrays zulässig.
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|