Массив деп аталатын бір типті мәліметтердің аталған жиынтығы әр түрлі программалау тілдерінде кеңінен қолданылады. Массивтің көмегімен мәліметтермен жұмыс істеу әлдеқайда жеңілдейді, бағдарлама кодының құрылымы қамтамасыз етіледі. Тілдердегі функциялар да ұзақ уақытты қажет етеді, бұл сіздің мақсатыңыздың кез-келген жерінде мақсатты тапсырманы қайтадан орындамай орындауға мүмкіндік береді. Бұл жағдайда көбінесе бір массивтің мәліметтерін функцияларда да, кодтың басқа блоктарында да қолдану қажет. Массивті функциядан қайтару бірнеше тәсілмен жүзеге асырылуы мүмкін.
Нұсқаулық
1-қадам
С ++ бағдарламалау тілінде массивтің функциялардан тікелей қайтарылуы қамтамасыз етілмейді; бұл тапсырманы мәліметтер массивіне көрсеткішті беру арқылы шешуге болады. Ол үшін функцияны қолдануды жариялау кезінде оны массивін сіз беруді жоспарлап отырған мәліметтер типіне қайтарушы мән ретінде жазыңыз.
Массив деректерін көрсеткіш арқылы қайтаруды жүзеге асыратын C ++ бағдарламалық кодының мысалы:
СHelp сыныбы
{
жеке:
int m_data [4];
қоғамдық:
fDebit ()
{
m_data [0] = 42;
m_data [1] = 56;
}
int * returnArray () // функцияны жариялау және сипаттау
{
m_data қайтару;
}
};
Void main ()
{
int * m_dataA;
СHelp * ohelp = жаңа СHelp ();
m_dataA = ohelp-> returnArray (); // сынып жиымын қайтару
}
Алайда, мұндай қайтару тек бір сынып ішінде ғана мүмкін болатындығын ескеру қажет. Егер сізге бағдарламалық кодта кәдімгі функцияны қолдану қажет болса, деректерді сілтеме арқылы тасымалдау дұрыс болмайды және қатемен орындалуы мүмкін. Бұл айнымалылардың ауқымымен байланысты. Массивті функцияның өзінде жасаған кезде, ол функциядан тыс көрінбейді.
2-қадам
Егер сізге жергілікті функциялардан массивті тасымалдау қажет болса, келесі опцияны қолдану керек. Бағдарламаның негізгі кодында массив құрыңыз. Параметрлері бар функцияны жариялаңыз, оның біріншісі массивтің мәліметтер типіне тұрақты көрсеткіш болады, екіншісі - сол типтегі тұрақты көрсеткіш. Функцияны шақырған кезде бірінші және екінші параметрлер сияқты құрылған массивтің адресін жіберіңіз. Функциядағы мәліметтермен бірінші алынған көрсеткішпен жұмыс істеңіз және барлық өзгертулерді екінші көрсеткішке сәйкес жазыңыз. Осылайша, функция аяқталғаннан кейін, сіз оның нәтижесін екінші көрсеткіште массивте аласыз.
Мұндай функцияны жариялауға мысал:
void my_funk_1 (const double * in, doble * out);
3-қадам
Айнымалы ауқымы бар функциялардан көрсеткішті қатесіз жіберу мәселесін шешетін std:: auto_ptr сыныбын қолданыңыз.
Бағдарлама кодының үлгісі:
қосу
қосу
int Аrr_f2 (int count) // функцияны сипаттау
{
return new int [count];
}
Void main ()
{
std:: auto_ptr ptr (Аrr_f2 (20)); // функцияны шақырып, оған массивті қайтарыңыз
cout
4-қадам
FoxPro бағдарламалау тілінде функцияны қайтаруды осыған дейін құрылған массивке сілтеме жасау арқылы жүзеге асыруға болады.
FoxPro ішіндегі үлгі код:
Жергілікті мас (2)
= func_2 (@ f3)
мас (15)
мас (20)
ФУНКЦИЯ функциясы_2 (мас)
СЫРТҚЫ АРВА мас
мас (1) = 1
мас (2) = 2
ҚАЙТУ
ENDFUNC
5-қадам
AutoIt сценарий тілі функцияны стандартты конструкциялар мен Return операторының көмегімен массивті қайтаруға мүмкіндік береді.
AutoIt тіліндегі код үлгісі:
# қосу
$ Rez = func_3 ()
$ aRezultat = StringSplit ($ Rez, '|')
Функция func_3 ()
$ aRet = 15 & '|' & 40
$ ARet қайтару // функциясынан aRet массивін қайтару
EndFunc