0

I don't know how to access the content of an array of pointers by a pointer. Here's an example:

Type
    PInteger = ^Integer;
    IntegerArrayP = array of PInteger;
    PIntegerArrayP = ^IntegerArray;

var
    variable: Integer;
    parrp: PIntegerArrayP;
    arrp: IntegerArrayP;
begin
    SetLength(arrp, 5);
    parrp := @arrp;
    For variable := Low(arrp) to High(arrp) do
    begin
        arrp[variable] := New(PInteger);
        (parrp^)[variable]^ := variable;
        WriteLn('parrp: ', arrp[variable]^);
    end;
end.

In my opinion it should be done like this (ptabp^)[variable]^ := variable; But I guess I'm wrong.

4

1 回答 1

1

你说的对。可能会省略括号。
你用什么pascal编译器?正确使用New例程:

 New(arrp[variable]) ;
 parrp^[variable]^ := variable;

PS你真的需要这些指针类型吗?

PPS 现在我看到一个错误: PIntegerArrayP = ^IntegerArray P ;

于 2014-12-06T15:41:55.623 回答