Segítség mi a különbség? C++
Figyelt kérdés
Madar *pMadar[1] = {hozzárendelünk egy memóriacímet egy olyan objektum címét ami a dinamikus memóriában van};
delete pMadar; //így mit csinálok?Törlöm azt az objektumot ami memóriacímen van?
Ha igen akkor a tömb első elemében a memóriacím már valahová máshova mutat?
Akkor a biztonság kedvéért rendeljem hozzá a 0 -t?
Lécike írjatok.
2012. jún. 12. 13:25
1/5 iostream válasza:
Undefined behaviort csinálsz, ami azt jelenti, hogy onnantól invalid a program állapota.
2/5 A kérdező kommentje:
És így:
delete *pMadar; //Így is undefined behavior?
Így már a memóriacímen levő objektumot törlöm ugye?
És ha töröltem akkor a pMadar ban levő memóriacím már egy más helyre mutat ugye.Ezért így ez veszélyes de ha törlés után felülírom a NULL al akkor már nem ugye?
2012. jún. 12. 13:45
3/5 iostream válasza:
Igen, úgy törlöd az objektumot (bár törölheted így is: delete pMadar[0];, és nem mutat máshova, ugyanoda mutat, csak már érvénytelen terület lesz az). Hogy 0-ra akarod-e állítani, az attól függ, később még használod-e azt a tömböt.
4/5 anonim válasza:
tömbnél a delete[]-t kell használni
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!