Показать сообщение отдельно
  #19  
Старый 10.11.2010, 17:07
ilyas09 ilyas09 вне форума
Прохожий
 
Регистрация: 30.10.2010
Сообщения: 6
Репутация: 10
Вопрос

У меня немного другая задача. Нужно в процедуре заполнить значения элементов массива, изменив его размер.
Как я понял, в этом случае нужно в основной программе "обновить" указатель на массив, примерно следующем образом:
Код:
var
DATA : array of Float; 
p:pointer;

procedure MassEdit(var pMass : Pointer);
var
mass: array of Float;
begin
  Pointer(mass) := pMass;
  SetLength(mass,3);
  mas[0]:=1;
  mas[1]:=1;
  mas[2]:=1;
  pMass:=@mass[0];
  Pointer(mass) :=nil;
end;

//далее  идёт кусок из текста, в котором обращаюсь к процедуре
...
p:=@DATA[0];
MassEdit(p);
pointer(DATA):=p;
...
//далее обращаемся к элементам массива DATA

Я правильно делаю?
Ответить с цитированием