Hogyan Adhatunk Vissza Egy Tömböt

Tartalomjegyzék:

Hogyan Adhatunk Vissza Egy Tömböt
Hogyan Adhatunk Vissza Egy Tömböt

Videó: Hogyan Adhatunk Vissza Egy Tömböt

Videó: Hogyan Adhatunk Vissza Egy Tömböt
Videó: Feladat tömbökkel, állítsuk sorrendbe [Gu0026G Programming] [HUN] 2024, November
Anonim

A tömbök a strukturált adattárolás egyik legegyszerűbb formája. Mivel oszthatatlan memóriaterületeket osztanak ki egydimenziós tömbök tárolására, és a legtöbb programozási nyelv rendelkezik szintaktikai konstrukciókkal a deklaráláshoz, ezeket intenzíven használják pufferként nagy mennyiségű információ átvitelére különböző (beleértve a könyvtár) funkciókat is. Viszont a funkcióknak néha vissza kell adniuk egy tömböt.

Hogyan adhatunk vissza egy tömböt
Hogyan adhatunk vissza egy tömböt

Szükséges

  • - szöveg szerkesztő;
  • - C vagy C ++ fordító és linker.

Utasítás

1. lépés

Adja vissza az adatokat egy függvényből vagy módszerből egy rögzített hosszúságú tömbbe helyezéssel, amelyet a hívó kiosztott és referenciaként továbbított. Határozza meg a megfelelő adattípust, például: typedef int t_array10 [10]; Használja a szükséges függvény vagy metódus deklarációjában és végrehajtásában: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Hívjon megfelelően: int aNumbers [10]; ReturnArray (aNumbers); A módszer hátránya, hogy a tömb hossza rögzített.

2. lépés

Tegye vissza a tömb adatait úgy, hogy a hívó által kiosztott kimeneti pufferbe helyezi, amelyet a mutató továbbít. A függvény vagy módszer prototípusa tartalmazhat olyan paramétert, amelyet a tömb jelölésében deklarálnak mind méretmeghatározás nélkül: void ReturnArray (int anArray , int nSize); vagy mutatóként: void ReturnArray (int * pnArray, int nSize); Mindkettőben esetekben az azonosító paraméter használható a tömb jelölésekben: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // hívás int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Ezt a módszert a tömbök átadására a függvényekhez és a tömbadatok visszaadására tőlük az esetek elsöprő többségében használják a C programok fejlesztésekor. Az ilyen módon adatokat elfogadó és visszaadó funkcióknak és metódusoknak általában rendelkezniük kell egy további paraméterrel, amelyen keresztül a puffer tényleges méretét átadják.

3. lépés

Visszaad egy függvényben vagy metódusban létrehozott tömböt. Formálisan ebben az esetben nem egy tömböt kell visszaküldeni, hanem egy mutatót az első elemére: int * ReturnArray () {int * pnArray = new int [10]; // a pnArray használatával visszatérés pnArray;} // mutató létrehozása a létrehozott tömbhöz int * pnNumbers = ReturnArray (); // use delete pnNumbers; // törlés Ennek a módszernek vannak bizonyos korlátai. Tehát a tömbnek halomban kell lennie. Ezenkívül a törlését a létrehozásnak megfelelő módszerrel kell végrehajtani (törlés új használata esetén, malloc esetében ingyenes, stb.).

4. lépés

A konténerosztályok segítségével kényelmesen visszaküldi a tömböket a C ++ programok fejlesztésekor. Példa egy tömb létrehozására és visszaadására, amely a C ++ szabványos sablonkönyvtár int számára megadott vektor sablon osztályának objektuma, így nézhet ki: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Ne feledje, hogy a népszerű keretek többsége hatékony osztályokat vagy tömb osztálysablonokat kínál. Gyakran megvalósítják az implicit adatmegosztás fogalmát referenciaszámlálással és másol-írásra. Ezért az ilyen tömbök értékeinek visszatérése a függvényekből nagyon hatékonyan történik, és a számítási erőforrások minimális fogyasztásával jár.

Ajánlott: