2014-12-06 58 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