Как передать массив как параметр?

Материал из DRKB

Как передать массив как параметр?[править | править код]

Для начала, нужно задать имя типа массива, чтобы затем назначать его переменным и параметрам:

type Ta = array of something;
var a: Ta;

Передача параметров процедуры и функции в дельфи:

Вариант 1.

procedure Proc(a: Ta);

внутри процедуры создаётся копия массива, внутри процедуры работа осуществляется только с копией данных. Недостаток: если а имеет большой размер то передача его в процедуру будет долгой и с большими затратами памяти, так как процедура должна будет скопировать всё содержимое и выделить память для копии.


Вариант 2.

procedure Proc(var a: Ta);

внутри процедуры код работает именно с переменной а и её содержимым


Вариант 3.

procedure Proc(const a: Ta);

внутри процедуры запрещено изменять данные переменной а


Вариант 4.

procedure Proc(out a: Ta);

при входе в процедуру массив рассматривается как пустой, но после выполнения процедуры можно получить значения



Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Source: http://forum.vingrad.ru
ID: 00077