Einzelnen Beitrag anzeigen

Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#1

Vertauschen von Pointern in einer Funktion

  Alt 9. Mär 2007, 16:35
Hi,

also, ich habe schon im Forum gesucht und auch gute Lösungen zum Vertauschen von Variablen gefunden.

Doch es wäre ideal wenn man nur die Pointer auf die Speicherbereiche verschiebt. So könnte man unabhängig von der Größe der eigentlichen Variable, die Pointer vertauschen. Notfalls mit einem Hilfspointer.

Und das ab besten in einer Funktion kapseln.

Kurzum ich will ungefähr so was, doch leider funktioniert das nicht:

Delphi-Quellcode:
procedure swap(var p1,p2:Pointer);
var pdummy:Pointer;
begin
  pdummy:=p1;
  p1:=p2;
  p2:=pdummy;
end;
aufrufen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i1,i2:integer;
begin
  i1:=1;
  i2:=2;
  swap(@i1,@i2);
  showmessage('i1= '+inttostr(i1)+#13+'i2= '+inttostr(i2));
end;

Wie kann man so was realisieren?

Gruß Alexander
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat