Имената колекция от същия тип данни, наречена масив, се използва широко в различни езици за програмиране. С помощта на масив е много по-лесно да работите с данни, структурата на програмния код е осигурена. Функциите в езиците също изминават дълъг път, позволявайки ви да изпълнявате силно насочена задача навсякъде в кода си, без да го прилагате отново. В този случай често е необходимо да се използват данните от един масив както във функцията, така и в други блокове код. Връщането на масив от функция може да се реализира по няколко начина.
Инструкции
Етап 1
В езика за програмиране C ++ не се предоставя директно връщане на масив от функция; тази задача може да бъде решена чрез предаване на указател към масив от данни. За да направите това, когато декларирате функцията, която ще се използва, запишете я като върната стойност указател към типа данни, масивът от който планирате да прехвърлите.
Пример за програмен код на C ++, който реализира връщането на данни от масив чрез указател:
клас СПомощ
{
частно:
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) // описание на функцията
{
връщане на нов int [брой];
}
void main ()
{
std:: auto_ptr ptr (Arr_f2 (20)); // извикваме функцията и връщаме масив от нея
Cout
Стъпка 4
В езика за програмиране FoxPro връщането на функция може да бъде реализирано по подобен начин, като се позовава на предварително създаден масив.
Примерен код в FoxPro:
МЕСТЕН mas (2)
= func_2 (@ f3)
? mas (15)
? mas (20)
ФУНКЦИЯ func_2 (mas)
ВЪНШЕН МАСИВ mas
mas (1) = 1
mas (2) = 2
ВРЪЩАНЕ
ENDFUNC
Стъпка 5
Сценарният език AutoIt ви позволява да върнете масив от функция, използвайки стандартни конструкции и оператора Return.
Примерен код на език AutoIt:
#include
$ Rez = func_3 ()
$ aRezultat = StringSplit ($ Rez, '|')
Func func_3 ()
$ aRet = 15 & '|' & 40
Върнете $ aRet // върнете масива aRet от функцията
EndFunc