Imenovana kolekcija iste vrste podataka, koja se naziva niz, široko se koristi u različitim programskim jezicima. Uz pomoć niza mnogo je lakše raditi s podacima, osigurana je struktura programskog koda. Funkcije u jezicima također puno napreduju, omogućavajući vam izvršavanje visoko ciljanog zadatka bilo gdje u vašem kodu, bez ponovne primjene. U ovom je slučaju često potrebno koristiti podatke jednog niza i u funkciji i u drugim blokovima koda. Vraćanje niza iz funkcije može se implementirati na nekoliko načina.
Instrukcije
Korak 1
U programskom jeziku C ++ nije osiguran izravan povratak niza iz funkcije; ovaj se zadatak može riješiti prosljeđivanjem pokazivača na niz podataka. Da biste to učinili, prilikom deklaracije funkcije koja će se koristiti, zapišite je kao povratnu vrijednost pokazivač na tip podataka čiji niz planirate prenijeti.
Primjer programskog koda C ++ koji implementira vraćanje podataka niza pokazivačem:
razred Pomoć
{
privatno:
int m_data [4];
javno:
fDebit ()
{
m_data [0] = 42;
m_data [1] = 56;
}
int * returnArray () // deklaracija i opis funkcije
{
return m_data;
}
};
void main ()
{
int * m_dataA;
Pomoć * ohelp = nova Pomoć ();
m_dataA = ohelp-> returnArray (); // vraća niz klasa
}
Međutim, treba imati na umu da je takav povratak moguć samo unutar jedne klase. Ako trebate koristiti uobičajenu funkciju u programskom kodu, sličan prijenos podataka kroz pokazivač neće biti ispravan i može se izvršiti s greškom. To je povezano s opsegom varijabli. Kada kreirate niz u samoj funkciji, on neće biti vidljiv izvan funkcije.
Korak 2
Ako trebate prenijeti niz iz lokalne funkcije, trebali biste koristiti sljedeću opciju. Formirajte niz u glavnom programskom kodu. Deklarirajte funkciju s parametrima, od kojih će prva biti stalni pokazivač na tip podataka niza, druga je redoviti pokazivač iste vrste. Kada pozivate funkciju, proslijedite istu adresu stvorenog niza kao prvi i drugi parametar. Radite s podacima u funkciji s prvim primljenim pokazivačem i napišite sve promjene prema drugom pokazivaču. Tako ćete po završetku funkcije u nizu na drugom pokazivaču dobiti rezultate njenog rada.
Primjer deklaracije takve funkcije:
void my_funk_1 (const double * in, doble * out);
Korak 3
Koristite implementiranu klasu std:: auto_ptr koja rješava problem prosljeđivanja pokazivača iz funkcije bez grešaka s promjenjivim opsegom.
Uzorak programskog koda:
uključuju
uključuju
int Arr_f2 (int count) // opis funkcije
{
vrati novi int [count];
}
void main ()
{
std:: auto_ptr ptr (Arr_f2 (20)); // pozivamo funkciju i po njoj vraćamo niz
cout
Korak 4
U programskom jeziku FoxPro, povratak funkcije može se implementirati na sličan način pozivanjem na prethodno stvoreni niz.
Uzorak koda u FoxPro:
LOKALNI mas (2)
= func_2 (@ f3)
mas (15)
mas (20)
FUNKCIJA func_2 (mas)
VANJSKI NIZ mas
mas (1) = 1
mas (2) = 2
POVRATAK
ENDFUNC
Korak 5
Skriptni jezik AutoIt omogućava vam da vratite niz iz funkcije pomoću standardnih konstrukcija i operatora Return.
Uzorak koda na jeziku AutoIt:
#include
$ Rez = func_3 ()
$ aRezultat = StringSplit ($ Rez, '|')
Func func_3 ()
$ aRet = 15 & '|' & 40
Vrati $ aRet // vrati niz aRet iz funkcije
EndFunc