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???