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

Previous  Top  Next

    
 

 

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

 

Code:

Type Ta=array of something;

Var a:Ta;

 

Вариант 1.

Code:

Procedure Proc(a:Ta);

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

 

Вариант 2.

Code:

Procedure Proc(var a:Ta);

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

 

Вариант 3.

Code:

Procedure Proc(const a:Ta);

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

 

Вариант 4.

Code:

Procedure Proc(out a:Ta);

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

 

 

©Drkb::00077

Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)

Взято с Vingrad.ru http://forum.vingrad.ru