ERASE

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » E » 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:

Siehe auch:
DIM, CLEAR, Arrays