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

당신 말이 맞습니다. 팸은 생략 될 수 있습니다.
어떤 파스칼 컴파일러를 사용합니까? New 루틴의 올바른 사용 :

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

P.S. 이 포인터 유형이 정말로 필요합니까?

P.P.S. 이제 오류가 표시됩니다. PIntegerArrayP =^IntegerArray P;

+0

무료 파스칼을 사용하고 있습니다. 또한 온라인 컴파일러에서 컴파일하려고했습니다. 여기에서 확인하십시오 : http://ideone.com/rSkhTQ –

+0

글쎄,이 모든 포인터 타입을 필요로하지는 않습니다. 나는 단지 연습하고있어. –

+1

실수로 일반적인 유형과 자신의 유형을 혼합했습니다. 추가 사항보기 – MBo