Zu deinem Code:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
x :
array [0..0]
of integer;
p : pointer;
i : integer;
begin
{$RANGECHECKS OFF} // sind doch standardmäßig aus
p := Addr(x);
// warum? p wird doch gleich überschrieben!
GetMem(p,5 * SizeOf(integer));
for i := 0
to 4
do
begin
x[i] := i;
// x hat nach wie vor nur ein Element, also AV
end;
{$RANGECHECKS ON}
end;
Schau dir mal genau an, wie ich es mache:
Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
const
N = 5;
type
PVector = ^TVector;
TVector = array [0..0] of Integer;
var
v: PVector;
i: Integer;
begin
GetMem(v, N * SizeOf(TVector));
for i := 0 to Pred(N) do
v[i] := i;
for i := 0 to Pred(N) do
ShowMessage(IntToStr(v[i]));
FreeMem(v);
end;
Gute Nacht
marabu