[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
On Fri, Oct 29, 2004 at 12:21:52AM +0200, Rune Larsen wrote: > lang lang title. > Jeg har et lidt mystisk problem mht til new og delete operatorene. Jeg har > en stl vektor der indeholder objekter der har brugt new operatoren. > Problemet er at jeg gerne vil kunne opdatere vektoren. Jeg bruger clear() > og bygger hele vektoren op igen med andre objekter, men der opstår en > memory-leak fordi de dynamisk allokerede områder ikke bliver slettet. Yep, klart. Pointerne (altså dine elementer) bliver slettet, men det de peger på sker der ikke noget med (det gør der jo aldrig, når en pointer deallokeres). > Hvis > jeg bruger "delete []" i objekternes destructor'en hænger programmet når > vektoren skal oprettes .... jeg aner ikke hvorfor ? . Jeg forstår ikke hvad du mener... Kan du give et eksempel? > Jeg kan undgå hukommelses-lækken hvis jeg laver en clean-funktion i > objekterne der ryder hukommelsen med "delete[]" før jeg kalder clear(). Men > det får programmet til at hænge i en "new" der bliver kaldt efter vektoren > er oprettet. Det forstår jeg heller ikke - kan du give nogle simple eksempler? > Jeg er ikke god til at bruge debuggere, men programmet hænger > vist i funktionen "posix_memalign". Det har virket, så det er en bug i mit > program , men er der nogle der prøvet noget ligende som kan fortælle mig > hvor jeg skal lede. Jeg kan give dig et simpelt eksempel på hvordan du gør det "rigtigt" hvis du kan komme med et simpelt eksempel på et program der lækker hukommelse :) -- / jakob
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |