Skinney Skrevet 29. april 2007 Del Skrevet 29. april 2007 Hei, Jeg lurer på om hva som skjer med pekere når et program terminerer/avslutter. Vil det da oppstå en minnelekasje hvis programmet uventet avslutter? Hvordan kan jeg isåfall kalle på destruktørene mine når dette skjer? Lenke til kommentar
Jaffe Skrevet 29. april 2007 Del Skrevet 29. april 2007 Destruktøren til et objekt blir kalt automatisk når delete kalles (dersom objektet ble allokert dynamisk) eller når scopet ("leveområdet") dets er ferdig (f.eks. når en funksjon slutter). Lenke til kommentar
Skinney Skrevet 29. april 2007 Forfatter Del Skrevet 29. april 2007 vel det vet jeg... Men hvis et program plutselig avsluttes... Vil det da kalle på destruktørene? Lenke til kommentar
Jaffe Skrevet 30. april 2007 Del Skrevet 30. april 2007 I et slikt tilfelle blir det nok minnelekasjer ja, da er vel det en jobb for garbace collectoren. Lenke til kommentar
Giddion Skrevet 30. april 2007 Del Skrevet 30. april 2007 Når et program avsluttes plutselig så dealokerer OSet (alle jeg har hørt om) minne ditt så det blir ingen minnelekasjer. For å stoppe nedstengingen av programmet under en plutselig slutt så burde du lese om exeption. Lenke til kommentar
GeirGrusom Skrevet 30. april 2007 Del Skrevet 30. april 2007 Som Giddion sier, så fikser OS-et det, så det er ikke der problemet ligger. Hvis du har en minnelekasje, kan dette føre til at programmet til slutt vil gå kjempetregt, og i verste fall sakker ned hele systemet ditt (bruker mer RAM en det som er tilgjengelig på systemet, og mye må skrives til pagefile/swapdisk) Men når programmet avsluttes, så frigjør operativsystemet alle ressurser som programmet har tatt i bruk (RAM, Handles etc.) Dette skjedde ikke nødvendigvis i DOS (derfor hendte det at man måtte restarte PC-en hvis en program klikket, og lydkortet f.eks. gikk amok) Selvom dette er ubekreftet, så har jeg hørt at windows 95/98 ikke hadde en ordentlig fungerende garbage collector. Lenke til kommentar
Skinney Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 ok, takk for hjelpen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå