2014-12-06 6 views
0

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

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

Вы правы. Пары могут быть опущены.
Какой компилятор pascal вы используете? Надлежащее использование процедуры New:

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

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

P.P.S. Теперь я вижу ошибку: PIntegerArrayP =^IntegerArray P;

+0

Я использую бесплатный паскаль. Я также попытался скомпилировать его в онлайн-компиляторе. Проверьте это здесь: http://ideone.com/rSkhTQ –

+0

Ну, мне не нужны все эти типы указателей. Я просто тренируюсь. –

+1

Вы смешиваете обычный тип и свой собственный тип случайно. См. Дополнение – MBo

Смежные вопросы