Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Вам стоит почитать теорию Особенно про использование указателей в Object Pascal.

Ну а пока вот решение проблемы, если надо что-то более конкретное, спрашивайте...
Код: Выделить весь код
program Project;

{$APPTYPE CONSOLE}

type
  aaa = array[1..10] of Pointer;
  ppp = ^aaa;

procedure pointerArray(p: ppp; Low,High: Integer);
var
  ik: Integer;
begin
  for ik:=Low to High do
    WriteLn(Integer(p^[ik]),Integer(p^[ik]^));
    // p^[ik] выдает *адрес* переменной, в нашем случае - переменной 'i'
    // p^[ik]^ выдает *значение* переменной типа Integer по адресу p^[ik],
    //    в нашем случае это - 11, т.е. значение после выполнения цикла for
end;

var
  var_a: aaa;
  i: Integer;

begin
  for i:=1 to 10 do
    var_a[i]:=@i;
    // после выполнения цикла for переменная i = 11
  PointerArray(@var_a,1,10);
  ReadLn;
end.

Отправлено: 20:58, 19-02-2005 | #2