Главная страница
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.046 c
3-1243599010
TheEd
2009-05-29 16:10
2010.08.27
Как правильнее не раздувая базу, хранить в ней множество картинок


2-1271335314
LVP
2010-04-15 16:41
2010.08.27
Вопрос по TImage


2-1266443303
Funtik
2010-02-18 00:48
2010.08.27
LIstBox


15-1263850233
Юрий
2010-01-19 00:30
2010.08.27
С днем рождения ! 19 января 2010 вторник


4-1235896896
MALAN
2009-03-01 11:41
2010.08.27
Ошибка записи при попытке установки хука