783492jld Skrevet 7. april 2008 Del Skrevet 7. april 2008 Hei! Hva trenger jeg å tenke på når det gjelder memory leaking? Når må jeg rydde opp etter meg? Må jeg rydde opp etter alle variabler og objekter jeg lager? (osv...) Lenke til kommentar
GeirGrusom Skrevet 7. april 2008 Del Skrevet 7. april 2008 Bare mineaddresser som allokeres med new eller malloc. f.eks. int* my_arr = new int[256]; // Dette må slettes før my_arr går ut av scope delete[] m_arr; MyClass my_object = new MyClass(); delete my_object; f.eks. Men hvis de er allokert på stack, er det ikke nødvendig. int my_func() { int my_arr[256]; // Trengs ikke å frigjøres, dette skjer automatisk når my_arr går ut av scope } // Her går my_arr ut av scope Lenke til kommentar
teflonpanne Skrevet 7. april 2008 Del Skrevet 7. april 2008 (endret) Hvis du bruker C++ er det best å bruke std::vector, std::string osv så mye som mulig. Disse håndterer minne for deg så det sparer deg for masse tid og bugs. Hvis du bruker linux/unix så burde du sjekke ut valgrind og/eller memprof. Det er to memory profilere som sier hvor programmet ditt lekker minne og mye annet, og det kommer det helt sikkert til å gjøre hvis du har et litt stort program eller er nybegynner. Ellers er det riktig det GeirGrusom sier, tenkte bare å legge til et lite ordtak: "free what you malloc, delete what you new and delete[] what you new[]". Det er viktig å ikke blande disse, f.eks delete noe du har malloc'et og sånn. Endret 7. april 2008 av teflonpanne 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å