Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

передача массива в функцию   Найти похожие ветки 

 
Тима   (2010-02-21 12:27) [0]

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

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

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


 
KilkennyCat ©   (2010-02-21 12:29) [1]

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


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

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

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);


 
oldman ©   (2010-02-21 12:49) [3]

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


 
KilkennyCat ©   (2010-02-21 13:13) [4]


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

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


 
MBo ©   (2010-02-21 13:20) [5]

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


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

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


 
grisme ©   (2010-02-22 07:21) [7]

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

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;


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


 
Palladin ©   (2010-02-22 08:08) [8]

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


 
Anatoly Podgoretsky ©   (2010-02-22 08:42) [9]

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


 
turbouser ©   (2010-02-22 11:17) [10]

Телепаты =)


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

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

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


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

0x00FF00   (23.02.10 02:27) [11]


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


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


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


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

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


 
Palladin ©   (2010-02-23 09:06) [14]


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

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


 
oxffff ©   (2010-02-23 09:44) [15]


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


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


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


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

именно так.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.108 c
15-1272968858
ocean
2010-05-04 14:27
2010.08.27
Хочу купить сервер


15-1268385262
Jeer
2010-03-12 12:14
2010.08.27
Нас посчитали


9-1184586954
Shurik_
2007-07-16 15:55
2010.08.27
Как повернуть текс в OenGL на любой угол


15-1271686611
БарЛог
2010-04-19 18:16
2010.08.27
А как будет по-английки...


15-1274351097
vlgrig1961
2010-05-20 14:24
2010.08.27
QReport печатает четные страницы???