2014-12-06 57 views
0

我不知道如何通过指针访问指针数组的内容。这里有一个例子:指针指向帕斯卡指针阵列

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

你说得对。 Parens可能被省略。
你使用哪种帕斯卡尔编译器?

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

附注:New日常的正确使用你真的需要这些指针类型吗?

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

+0

我正在使用免费的pascal。我也试着在一个在线编译器上编译它。看看这里:http://ideone.com/rSkhTQ – 2014-12-06 15:44:24

+0

嗯,我不需要所有这些指针类型。我只是在练习。 – 2014-12-06 15:46:53

+1

你偶然混入了普通类型和你自己的类型。见附加 – MBo 2014-12-06 15:54:14