Diese Funktionen werden verwendet, um in EbsScript Pointeroperationen durchführen zu können, wie sie z. B. in der Programmiersprache C üblich sind.
Die Deklaration eines Pointers (einer Referenz) erfolgt durch "^" vor dem Typnamen.
Auf die Adresse einer Variablen wird durch ein "&" vor dem Variablennamen zugegriffen (Adressoperator).
Auf den Inhalt der Adresse, auf die der Pointer verweist (also auf den dort abgelegten Wert), kann durch ein der Pointervariablen nachgestelltes "^" zugegriffen werden (Dereferenzierung)
Pointer werden im Deutschen auch als Zeiger bezeichnet. Eine Variable vom Typ pointer enthält die Speicheradresse einer Variablen eines bestimmten Typs (real, integer...).
Einfaches Beispiel:
var realnumber : real;
pointertoreal : ^real;
pointertype : pointer;
begin
realnumber := 7.0;
pointertoreal := &realnumber;
println ("using ^ on pointer: ", pointertoreal^ * pointertoreal^);
pointertype := pointertoreal;
pointertoreal^ := 8;
println ("Square: ", realnumber * realnumber);
end.
Ausgabe:
using ^ on pointer: 49.0
Square: 64.0
Name |
Zweck |
Argumente |
Rückgabewert |
Beispiel |
copymem |
kopiert einen Speicherbereich. Anzahl = Anzahl elementare Datentypen |
1: POINTER: Ziel |
kein |
|
dispose |
gibt den Speicherplatz wieder frei, der für das Objekt durch die Funktion new allokiert wurde, auf das der Pointer verweist |
1: POINTER: |
kein |
var begin end; |
freemem |
gibt den Speicherplatz wieder frei, der für das Objekt durch die Funktion getmem allokiert wurde, auf das der Pointer verweist |
1: POINTER: |
kein |
|
getmem |
legt einen neuen Pointer an und allokiert den erforderlichen Speicherplatz für das Objekt, auf das der Pointer verweist. Anzahl > 1: Array von Elementen |
1: POINTER: 2: INTEGER: Anzahl |
kein |
|
new |
legt einen neuen Pointer an und allokiert den erforderlichen Speicherplatz für das Objekt, auf das der Pointer verweist. Anzahl > 1: Array von Elementen |
1: POINTER: 2: INTEGER: Anzahl |
kein |
var begin end; |
sizeOf |
Liefert die Länge eines Objektes bzw. einer Variablen |
Objekttyp bzw. Variable: |
Integer |
var i: integer; |
addr |
Liefert die Adresse des Arguments zurück. |
Variable: |
Integer |
var i: integer; |