Einzelnen Beitrag anzeigen

tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#12

Re: Pointer, Arbeitsspeicher etc..

  Alt 25. Nov 2005, 15:50
Zeiger sind dann praktisch, wenn du sicherstellen willst, dass du die Änderung einer Variablen immer mitbekommst. Sagen wir, du hast zwei Variablen, a und b.
Wenn du jetzt willst, dass in b das gleiche drinsteht wie in a, was tust du dann?
Vermutlich b := a;

So, wenn sich jetzt aber der Wert von a ändert, wird in b immer noch der alte Wert drinstehen. Dieses Problem kann man mit Zeigern lösen:

Delphi-Quellcode:
var a: integer;
    b: ^integer;

begin
  a := 5;
  b := @a; // Jetzt zeigt b auf die Stelle im Speicher, an der a steht
  // in b^ steht jetzt 5
  a := 3;
  // in b^ steht jetzt ebenfalls 3!
end;
Ein Nachteil von Zeigern ist, dass man ein bisschen mehr aufpassen muss, was man tut. Insbesondere reservierten Speicher wieder freizugeben, keine NIL-Zeiger zu dereferenzieren usw.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat