Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Тима   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.062 c
2-1273303750
FIL-23
2010-05-08 11:29
2010.08.27
поиск в Query


15-1274783792
12
2010-05-25 14:36
2010.08.27
а вот как такое сделали?


9-1187953783
max_
2007-08-24 15:09
2010.08.27
DirectX - текстура


2-1268164730
Delphist
2010-03-09 22:58
2010.08.27
отладка в D2010


4-1229333584
Nucer
2008-12-15 12:33
2010.08.27
GetTCPTable





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский