Kezdőoldal » Számítástechnika » Programozás » C++ban ha úgy deklarálok egy...

C++ban ha úgy deklarálok egy tömböt hogy int a[5] akkor miért nem akad ki akkor ha a[6]-ra hivatkozok?

Figyelt kérdés
és ennek most 0..5 vagy 1..5 között lehet értéket adni?
2014. máj. 31. 17:38
 1/7 anonim ***** válasza:
100%
a[0] ... a[4] aminek adhatsz értéket. Kiakadni azért nem fog, mert nem figyeli a túlindexelést.
2014. máj. 31. 17:48
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
Mert C++.
2014. máj. 31. 18:52
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
de jó, köszi
2014. máj. 31. 18:57
 4/7 anonim ***** válasza:
100%
A C++ nem figyeli a túlindexelési hibákat, mert a C-vel való kompatibilitás érdekében nem tárolja a tömbök hosszát. Pedig azóta már nem kompatibilis a C-vel, de a régebbi C++ verziókkal a kompatibilitás követelmény. Egészen a C++11-ig, az már nem kompatibilis a régebbi verziókkal. De tömbhosszat ő sem tárol. Használj vectort, ha félsz a túlindexeléstől!
2014. máj. 31. 19:56
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
Azért nem, mert az egész egy pointer dereference, nem a tömg hatodik elemét indexeled, hanem egy pointert, amit egy összeadással kaptál.
2014. máj. 31. 20:56
Hasznos számodra ez a válasz?
 6/7 iostream ***** válasza:

"Használj vectort, ha félsz a túlindexeléstől!"


Persze a vector sem véd a túlindexeléstől, csak ha az at metódusát használod, az meg kivételt dob, akkor már egyszerűbb biztosra menni és úgy írni a kódot, hogy sose menjen túl a tömbhatáron.


Amúgy meg azért, mert nem a nyelv, a futtatókörnyezet jelzi a hibákat hanem az operációs rendszer. A memóriamenedzser meg egyben lefoglal nagy blokk memóriákat, és ha azon belül maradsz, az oprendszer észre sem veszi. Ha a tömböd ráadásul a stacken van, az egy pár megás folytonos tárterület, megcímezheted akár a[100]-t is.

2014. jún. 1. 11:52
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
köszi, bár itt még nagyon nem tartok...
2014. jún. 1. 13:22

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!