指向Pascal中指针数组的指针

时间:2014-12-06 15:33:30

标签: pointers pascal dynamic-variables

我不知道如何通过指针访问指针数组的内容。这是一个例子:

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.

在我看来应该这样做(ptabp^)[variable]^ := variable; 但我想我错了。

1 个答案:

答案 0 :(得分:1)

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

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

P.S。你真的需要这些指针类型吗?

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