Kezdőoldal » Számítástechnika » Programozás » C++: Mi a különbség (használat...

C++: Mi a különbség (használatban) az alábbi két deklarálás között?

Figyelt kérdés

Miért előnyös így létrehozni a változókat:

int * mutato = new int;


ehelyett:

int mutato;



2015. jan. 18. 15:11
 1/2 anonim ***** válasza:

Az első a heapen hozza létre az intet, a második a stacken. Itt annyi előnye lehet, hogy nem szűnik meg a stack megszűnésével (neked kell delete-lni).


De így ritkán használják, inkább változó méretű (dinamikus) tömbökhöz, vagy egyéb struktúráknál jön jól.

2015. jan. 18. 15:16
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

Használatban ha ki akarod olvasni a mutatóban lévő értéket, vagy írni akarsz bele, akkor dereferálni kell, így:


int* mutato = new int;

*mutato = 3;

if(*mutato == 3) std::cout << "ez bizony három" << std::endl;


Illetve nem "veszik el" az adat, ha kilépsz az aktuális scope-ból (tipikusan a következő }-kor), ellentében a sima int mutato; megoldással. Persze írni/olvasni csak akkor fogod tudni, ha valahol eltárolod a mutatót rá. És innentől a te felelősséged kitörölni is.

2015. jan. 18. 22:43
Hasznos számodra ez a válasz?

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!