C++ new-al létrehozott objektum?
Figyelt kérdés
class A{};
int main(){
A *p;
p = new A();
return 0;
}
Ilyenkor kell delete p a return elé?
2017. nov. 20. 11:14
1/3 anonim válasza:
Röviden: igen, kell.
Hosszabban: alapvetően neked kell gondoskodnod arról, hogy azok a memória-területek, amiket lefoglalsz, a futás végén fel legyenek szabadítva. Ha ezt nem teszed, akkor az ismételt futtatás (vagy egy, a memória-területeit rosszul karbantartó alprogram ismételt futtatása) során újabb és újabb területeket csipeget magának a program, így apránként elfogyasztva a rendelkezésre álló memóriát. Ezt a jelenséget hívjuk "memory leak"-nek, vagyis memória-szivárgásnak.
2/3 anonim válasza:
Elvileg az op.rendszer ilyenkor felszabadít minden, a progi által lefoglalt memóriát, de nem jó gyakorlat erre építeni a memóriakezelést. Erősen javasolt progin belül felszabadítani, szóval egyetértek az első válaszolóval.
3/3 anonim válasza:
Ha csak ennyi a program, akkor remek így is, emiatt fog memory leaket okozni.
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!