Указатель на массив указателей в Паскале

Я не знаю, как получить доступ к содержимому массива указателей по указателю. Вот пример:

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; Но, видимо, я ошибаюсь.


person Tomasz Kasperczyk    schedule 06.12.2014    source источник


Ответы (1)


Ты прав. Скобки могут быть опущены.
Какой компилятор Pascal вы используете? Правильное использование подпрограммы New:

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

P.S. Вам действительно нужны эти типы указателей здесь?

П.П.С. Теперь я вижу ошибку: PIntegerArrayP = ^IntegerArrayP;

person MBo    schedule 06.12.2014
comment
Я использую бесплатный паскаль. Я также пытался скомпилировать его на онлайн-компиляторе. Проверьте это здесь: ideone.com/rSkhTQ - person Tomasz Kasperczyk; 06.12.2014
comment
Ну, мне не нужны все эти типы указателей. Я просто тренируюсь. - person Tomasz Kasperczyk; 06.12.2014
comment
Вы случайно смешали обычный тип и свой собственный. См. дополнение - person MBo; 06.12.2014