Kezdőoldal » Számítástechnika » Programozás » C++-ban lehet tömböt visszaadn...

C++-ban lehet tömböt visszaadni függvénnyel?

Figyelt kérdés
Vagy ehelyett csak referenciaként adunk át tömböket?

2018. okt. 3. 17:58
 1/6 anonim válasza:
ha std::vector-al csinaltad a tombot akkor pl. lehet.
2018. okt. 3. 18:10
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Sima tömbnél csak a pointert lehet, de a méretet nem tudja a gép magától, de vector osztály alkalmas rá.
2018. okt. 3. 19:15
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

Stack-en létrehozott tömb megszűnik, amint scope-on kívülre esik. Ez a függvény végével megtörténik, még akkor is, ha ráállítasz egy pointert, amit visszaadsz. Ezért csak a heapen létrehozott tömböket tudod visszaadni ilyen módon (vagy a statikusakat), mert ennek a felszabadításáról neked kell gondoskodnod.


Vannak esetek, amikor nem kell tudni a tömb hosszát, pl: const char*, mert \0-al terminál, így lehet könnyen kezelni. De olyan is előfordulhat, egy függvény, mindig pontosan ugyanakkora tömböt ad vissza.

2018. okt. 3. 19:41
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
Amit #3 mondott, de hozzáfűzendő, hogy manapság a natív tömbökkel való operálgatás helyett valamilyen container osztályt (pl std::vector) használnak, ami a háttérben kezeli a memóriafoglalást, így kényelmesebben használható.
2018. okt. 3. 19:56
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
#4: kivéve olyan esetekben, amikor az std::vector által elfedett logika "túl lassú". Értem én, hogy a kérdezőnek ez nem releváns most, de jó ha megtanulja.
2018. okt. 3. 20:21
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:

Nem egészen vagyok tisztában azzal, hogy mi jön létre a stacken, mi a heapen, és mi a statikus tárterületen.

int a[] = {1,2,3};

int * b = new int[4] {1,2,3,4};

static int c[] = {1,2,3,4,5};

Tippem szerint a legfelső a stack, a középső a heap, a legalsó pedig a statikus tárterület. Ezen kívül van még más lehetőség?

És amúgy a static változókat/tömböket is nekem kell felszabadítani valóban?

2018. okt. 4. 10:58

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!