Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kada se izvrsava destruktor?

[es] :: C/C++ programiranje :: Kada se izvrsava destruktor?

[ Pregleda: 1287 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fiki035

Član broj: 88665
Poruke: 74



+9 Profil

icon Kada se izvrsava destruktor?11.05.2013. u 18:14 - pre 82 meseci
Kada imamo recimo funkciju
Code:

int f1(){
   char *niz = new char[10];
   if(x!=y){
     return 0;
   }

delete niz[];
return 1
}


e sada pitanje. Posto unistavam prostor na heap-u na koji ukazuje pokazivac niz na kraju funkcije, ali takodje iz funkcije pod odredjenim uslovima mogu da izadjem u tacki pre pozivanja instrukcije delete. Znaci gore u if-u. Moje pitanje da li ako se iz funkcije izadje u if-u prostor na koji ukazuje pokazivac niz nece biti dealociran?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4867
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+622 Profil

icon Re: Kada se izvrsava destruktor?11.05.2013. u 19:18 - pre 82 meseci
Sad ili nikad, vreme je da pogledaš šta su: Smart Pointers, STL i RAII. Implementacija garancije da se nešto "čisti za sobom" (oslobađanje memorije, zatvaranje handle-ova, vraćanje kontrola u prvobitno stanje), ma šta se desilo u funkciji, jako je važan koncept u C++.

Ima dosta i na ES-u, npr kreni odavde:
http://www.elitesecurity.org/t389642


P.S.
Proveri u kodu koji si dao, da li je ovo OK: delete niz[];
 
Odgovor na temu

Fiki035

Član broj: 88665
Poruke: 74



+9 Profil

icon Re: Kada se izvrsava destruktor?11.05.2013. u 19:43 - pre 82 meseci
Citat:
X Files:
P.S.
Proveri u kodu koji si dao, da li je ovo OK: delete niz[];


Da, brzo sam kucao pa napravio omasku. Treba

Code:

delete [] niz;
 
Odgovor na temu

[es] :: C/C++ programiranje :: Kada se izvrsava destruktor?

[ Pregleda: 1287 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.