Kaip Grąžinti Masyvą

Turinys:

Kaip Grąžinti Masyvą
Kaip Grąžinti Masyvą

Video: Kaip Grąžinti Masyvą

Video: Kaip Grąžinti Masyvą
Video: #1 Mobiliosios programėlės PI18C 2024, Gegužė
Anonim

Masyvai yra viena iš paprasčiausių struktūrizuotų duomenų saugojimo formų. Kadangi nedalomos atminties sritys yra skirtos saugoti vienmates masyvas, o dauguma programavimo kalbų deklaravimui turi sintaksės konstrukcijas, jos intensyviai naudojamos kaip buferiai dideliam informacijos kiekiui perkelti į įvairias (įskaitant bibliotekos) funkcijas. Savo ruožtu funkcijoms kartais reikia grąžinti masyvą.

Kaip grąžinti masyvą
Kaip grąžinti masyvą

Būtinas

  • - teksto redaktorius;
  • - C arba C ++ kompiliatorius ir susiejiklis.

Nurodymai

1 žingsnis

Grąžinkite duomenis iš funkcijos ar metodo, įdėdami juos į fiksuoto ilgio masyvą, paskirtą skambinančiojo ir perduotą pagal nuorodą. Apibrėžkite tinkamą duomenų tipą, pvz.: typedef int t_array10 [10]; Naudokite juos deklaruodami ir įgyvendindami reikiamą funkciją ar metodą: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Tinkamai paskambinkite: int aNumbers [10]; ReturnArray (aNumbers); Šio metodo trūkumas yra tas, kad masyvo ilgis yra fiksuotas.

2 žingsnis

Grąžinkite masyvo duomenis įdėdami juos į skambintojui skirtą išvesties buferį, kurį perduoda rodyklė. Funkcijos ar metodo prototipe gali būti parametras, deklaruojamas tiek masyvo žymėjime be dydžio specifikacijos: void ReturnArray (int anArray , int nSize); arba kaip rodyklė: void ReturnArray (int * pnArray, int nSize); Abiejuose atvejais identifikatoriaus parametrą galima naudoti masyvo žymėjime: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Šis masyvų perdavimo funkcijoms ir masyvo duomenų grąžinimo iš jų metodas dažniausiai naudojamas kuriant C programas. Atkreipkite dėmesį, kad funkcijos ir metodai, kurie tokiu būdu priima ir grąžina duomenis, paprastai turi turėti papildomą parametrą, per kurį perduodamas tikrasis buferio dydis.

3 žingsnis

Grąžinti masyvą, sukurtą naudojant funkciją ar metodą. Formaliai šiuo atveju turėtų būti grąžintas ne masyvas, o jo pirmojo elemento žymeklis: int * ReturnArray () {int * pnArray = new int [10]; // darbas su pnArray grįžti pnArray;} // gauti rodyklę į sukurtą masyvą int * pnNumbers = ReturnArray (); // naudoti delete pnNumbers; // ištrinti Šis metodas turi tam tikrų apribojimų. Taigi, masyvas turi būti su kaupu. Be to, jis turi būti ištrintas taikant metodą, atitinkantį sukūrimą (ištrinti, jei naudojamas naujas, nemokamas „malloc“ir kt.).

4 žingsnis

Naudodami konteinerių klases galite patogiai grąžinti masyvus, kai kuriate C ++ programas. Masyvo, kuris yra „C ++“standartinių šablonų bibliotekos vektorių šablonų klasės objektas, sukurtas ir grąžintas int, pavyzdys gali atrodyti taip: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Atkreipkite dėmesį, kad dauguma populiarių sistemų teikia galingas klases arba masyvo klasės šablonus. Jie dažnai įgyvendina numanomo dalijimosi duomenimis sampratą, skaičiuodami nuorodas ir kopijuodami. Todėl tokių masyvų grąžinimas iš funkcijų atliekamas labai efektyviai ir yra susijęs su minimaliu skaičiavimo išteklių sunaudojimu.

Rekomenduojamas: