C++-ban lehet tömböt visszaadni függvénnyel?
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.
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?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!