Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

передача массива в функцию


Тима ©   (2010-02-21 12:27:00) 

Всем привет, как передать функции массив в качестве параметра?

типо func TEST(mass:array of integer):boolean;
я создал тип
mymass =array of integer;
func TEST(mass:mymass):boolean;

передаю массив заранее объявленный как mymass, но данные в него не заносятся.


0x00FF00   (2010-02-23 14:47:00) [1]


> может он имел ввиду не то, что так сделать нельзя, а то
> что так делать нельзя?

именно так.


oxffff   (2010-02-23 09:44:00) [2]


> Тима   (21.02.10 12:27)  
> Всем привет, как передать функции массив в качестве параметра?
>
>
> типо func TEST(mass:array of integer):boolean;
> я создал тип
> mymass =array of integer;
> func TEST(mass:mymass):boolean;
>
> передаю массив заранее объявленный как mymass, но данные
> в него не заносятся.


Проблема в том в что в названии присутствуют часть тела содержащая ягодицы.


Palladin   (2010-02-23 09:06:00) [3]


> 0x00FF00   (23.02.10 02:27) [11]

может он имел ввиду не то, что так сделать нельзя, а то что так делать нельзя?


Германн   (2010-02-23 02:42:00) [4]


> Наш лектор, помнится, об этом буквально распинался: (массив
> нельзя передавать в функцию по значению!)

Не все, не всегда могут словами четко выразить свои мысли. (Особенно если они смутные ввиду слабых знаний предмета).


Игорь Шевченко   (2010-02-23 02:33:00) [5]

0x00FF00   (23.02.10 02:27) [11]


> массив нельзя передавать в функцию по значению!


Странно. Структуру можно, массив нельзя. Дискриминация


0x00FF00   (2010-02-23 02:27:00) [6]

> Телепаты =)
А может быть, просто умудренные суровой практикой преподавания.

Наш лектор, помнится, об этом буквально распинался: (массив нельзя передавать в функцию по значению!)×100500...


turbouser   (2010-02-22 11:17:00) [7]

Телепаты =)


Anatoly Podgoretsky   (2010-02-22 08:42:00) [8]

И зачем то указатель на указатель.


Palladin   (2010-02-22 08:08:00) [9]

абсолютно никакой разницы, кроме того, что в твоем варианте - куча ненужных символов


grisme   (2010-02-22 07:21:00) [10]

наверное, будет лучше так?

type TMyArray = array of Integer
      PMyArray = ^TMyArray;

function addtomass(const mass:PMyArray; const number : Integer):boolean;
begin
 ...
 SetLength(mass^, Length(mass^)+1);
 mass^[Length(mass^)-1] := number;
 ...
end;


вызов:
var
 ihavearray : TMyArray;
begin
 ...
 if addtomass(@ihavearray, someinteger) then {good} else {bad}
 ...
end;


хотя, особой разницы, конечно нету.


Тима   (2010-02-21 14:01:00) [11]

именно в var, Спасибо Мужики!


MBo   (2010-02-21 13:20:00) [12]

может быть, речь идет о том, что нужен параметр,объявленный с модификатором var ?


KilkennyCat   (2010-02-21 13:13:00) [13]


> oldman ©   (21.02.10 12:49) [3]

я думаю, возвращает, но не тот :)


oldman   (2010-02-21 12:49:00) [14]

Я думаю, что функция все добавляет.
Но не возвращает результат...
:)))


Тима   (2010-02-21 12:38:00) [15]

Ок, мне скажем удобней когда есть функция в которую я передаю массив и значение которое хочу туда записать.

type MyMass=array of integer;
Если бы была функция то в моем представлении она выглядела бы так:
function addtomass(mass:MyMass;number:integer):boolean;
begin
setlength(mass,length(mass)+1);
mass[length(mass)-1] := number;
...
end;


чтобы потом вызывать так
massiv:mymass;
addtomass(massiv,150);
addtomass(massiv,250);


KilkennyCat   (2010-02-21 12:29:00) [16]

Хотелось бы (на самом деле - нет, но это из вежливости) больше информации...


Наверх

Титульная страница Поиск, карта сайта Написать письмо