Thema: Delphi Frage zu Zeigern

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Frage zu Zeigern

  Alt 31. Jan 2006, 10:56
Deine Deklaration von "zeiger" ist ein Zeiger auf ein Zeiger. Pointer ist schon ein Zeiger und mit dem ^ deklarierst du einen Zeiger auf einen Zeiger. Da du aber nun keinen Speicher alloziierst für deinen Zeiger (auf den gezeigt wird), wird der Verweis auf den Inhalt auch schon hinfällig sein. Und wenn du dann noch auf ein TEdit verweist, dann ist dieses intern auch ein Zeiger - somit hast du dann einen Zeiger, der auf einen Zeiger zeigt welcher wiederrum auf Instanzenzeiger zeigt, welcher auf die TEdit Instanz im Speicher zeigt. Da du dafür mindestens 2x Platz anlegen müsstest für die Zeiger, wird das nicht hinhauen.

Delphi-Quellcode:
Var
  Zeiger: Pointer;
  ActiveEdit: TEdit;

Begin
  // ActiveEdit sollte hier schon existieren

  Zeiger := @ActiveEdit; // Nun zeigt Zeiger auf den Speicherplatz wo ActiveEdit liegt. ActiveEdit ist aber auch nur ein Zeiger der auf die Instanz von TEdit zeigt.

  TEdit(Zeiger^).Text := 'Teschd';
End;
  Mit Zitat antworten Zitat