Thema: Delphi Pointer

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Pointer

  Alt 6. Feb 2004, 19:00
Pointer zeigen ja eigentlich nur auf eine Stelle im Speicher.
Beispiel:
Delphi-Quellcode:
var normalint: Integer;
    zeigerint: ^Integer; //mit "^Integer" machen wir aus Integer einen Zeiger auf einen Integer
begin
  normalint := 5; //der normalen Integervariablen weisen wir jetzt irgendeinen wert zu
  zeigerint := @normalint;
  //um zeigerint wie einen normalen Integer verwenden zu können muss man den Zeiger dereferenzieren - also "zeigerint^" verwenden
  showmessage(inttostr(zeigerint^)); //und wenn wir uns jetzt zeigerint ausgeben lassen sieht man das da 5 rauskommt
  zeigerint^ := 7; //jetzt setzen wir zeigerint auf 7
  showmessage(inttostr(normalint)); //und wenn wir uns jetzt normalint anzeigen lassen steht da auch 7 weil wir ja an die stelle im speicher geschrieben haben wo normalint steht
end;
Ich hoffe es war einigermaßen verständlich, ansonsten nochmal posten was nicht verstanden wurde

und noch nen Beispiel aus nem beitrag den ich zum thema Pointer schonmal in nem thread gepostet hab
Delphi-Quellcode:
var gesamt: Array[0..1] of char;
    byte1, byte2: ^char;
begin
  byte1 := @gesamt[0]; //byte1 auf dein speicher von gesamt[0] zeigen lassen
  byte2 := @gesamt[1]; //byte2 auf dein speicher von gesamt[1] zeigen lassen
  byte1^ := 'a'; //an der stelle im speicher "a" schreiben
  byte2^ := 'b'; //an der stelle im speicher "b" schreiben
  self.caption := gesamt; //und siehe da, in gesamt steht später "ab"
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat