Einzelnen Beitrag anzeigen

Sebastian Nintemann
(Gast)

n/a Beiträge
 
#3
  Alt 3. Jan 2003, 13:54
Hallo und herzlich willkommen!
Zitat von VeeJay:
...und wofür man sachen wie "new(a)" oder "a^:='B'" braucht.
Erst einmal dazu:
Code:
new(a);
Dies reserviert den Speicher für eine neue, dynamische (weil zur Laufzeit erstellte) Variable, sie reserviert so viel Speicher, wie der Typ auf den der Zeiger a zeigt braucht. Ein Zeiger (Pointer) beinhaltet ja nur die Adresse im Speicher einer bestimmten Variable. Damit zeigt a jetzt auf eine Variable, auf die mit a^ (Dereferenzierungsoperator) zugegriffen werden kann.
Mit
Code:
a^ := 'B';
weist du also dem Speicher auf den a zeigt den Inhalt 'B' zu.

Aber es fehlt in der procedure die freigabe des reservierten Speichers, bei dynamischen Variablen macht Delphi das nämlich nicht automatisch, wie bei zB lokalen Variablen!
Zitat von Delphi OH:
When an application is finished using a dynamic variable created with New, it should dispose of the memory allocated for the variable using the Dispose standard procedure.
Also wenn man mit der Arbeit mit einer mit new() erzeugten Variable fertig ist oder eine neue Variable mit a erschaffen werden soll muss man den Speicher mit
Code:
dispose(a);
erst wieder freigeben.

Ich hoffe das war jetzt ein bisschen verständlich

Gruß, Sebastian
  Mit Zitat antworten Zitat