Autor Beitrag
Shadow110
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64



BeitragVerfasst: So 09.05.04 21:41 
Hallo.

Mich würde mal interessieren, was

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
a:integer;
begin
  pointer(a) :=   //??
end


genau macht.

Folgendes habe ich schon verstanden:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var:
a:pointer;  // Pointer auf irgendwas kann nicht dereferenziert werden. Vorher in einen Typisierten Pointer wandeln.
b:^integer; // Pointer auf einen Integerwert
c:integer;
begin
a := @c; // Der Pointer A zeigt auf die Addresse der Variable C
a := ADDR(c); // Der Pointer A zeigt auf die Addresse der Variable C
b := ptr($00401002); // Der Pointer B zeigt auf die Speicheraddresse $00401002

// mit b^ kann der Pointer jetzt dereferenziert werden
showmessage(inttohex(b^, 8);

end;


Ich habe nur noch nicht ganz verstanden, wie ich zum Beispiel
a:pointer in einen Typisierten umwandeln kann. Muss ich da einen anderen zuweisen?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
a:pointer
b:^integer
begin
b := a; // ??
end;


oder geht das auch anders?

Und vor allem für was ist das

Pointer(test);

gut?

Danke euch schon mal

Grüße
Alex
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: So 09.05.04 22:45 
Hi.

Mach dir lieber pointer-typen, dann kannst du auch besser casten:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
type pInteger = ^Integer; // gibt es vermutlich schon, aber egal

...
c := pInteger(a)^;


Falls du das wissen wolltest. Ach ja und pointer sollten nicht wahrlos eingesetzt werden, nur da wo sie absolut sinn machen und du mit normalen referenz-typen nicht weiter kommst.

_________________
mfg.
mâximôv