Как да върна масив от функция

Съдържание:

Как да върна масив от функция
Как да върна масив от функция

Видео: Как да върна масив от функция

Видео: Как да върна масив от функция
Видео: Динамические массивы в Excel 2024, Ноември
Anonim

Имената колекция от същия тип данни, наречена масив, се използва широко в различни езици за програмиране. С помощта на масив е много по-лесно да работите с данни, структурата на програмния код е осигурена. Функциите в езиците също изминават дълъг път, позволявайки ви да изпълнявате силно насочена задача навсякъде в кода си, без да го прилагате отново. В този случай често е необходимо да се използват данните от един масив както във функцията, така и в други блокове код. Връщането на масив от функция може да се реализира по няколко начина.

Как да върна масив от функция
Как да върна масив от функция

Инструкции

Етап 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

Препоръчано: