Einzelnen Beitrag anzeigen

Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 18:36
Moment: Kann es sein, dass NUR DGL-Lukes Lösung funzt?

Dieser Code gibt erst 2 und dann 4 zurück:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
   Stack: TStack;
   Puffer: Integer;
begin
   Stack := TStack.Create;
   Puffer := 4;
   Stack.Push(Pointer(Puffer));
   Puffer := 2;
   Stack.Push(Pointer(Puffer));
   ShowMessage(IntToStr(Integer(Stack.Pop)));
   ShowMessage(IntToStr(Integer(Stack.Pop)));
   Stack.Free;
end;
Folgender hingegen 2mal hintereinander 2
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
   Stack: TStack;
   Puffer: Integer;
begin
   Stack := TStack.Create;
   Puffer := 4;
   Stack.Push(@Puffer);
   Puffer := 2;
   Stack.Push(@Puffer);
   ShowMessage(IntToStr(PInteger(Stack.Pop)^));
   ShowMessage(IntToStr(PInteger(Stack.Pop)^));
   Stack.Free;
end;
Warum???
  Mit Zitat antworten Zitat