Minnet som er allokert ved hjelp av funksjonene malloc og calloc blir ikke deallokert på egen hånd. Derfor brukes frimetoden når den dynamiske minnetildelingen finner sted. Det bidrar til å redusere sløsing med minne ved å frigjøre det.
Hvordan frigjøres det tildelte minnet?
I C brukes bibliotekfunksjonen malloc til å tildele en minneblokk på heapen. Programmet får tilgang til denne minneblokken via en peker som malloc returnerer. Når minnet ikke lenger er nødvendig, sendes pekeren til ledig som deallokerer minnet slik at det kan brukes til andre formål.
Hva skjer hvis du ikke frigjør tildelt minne?
I de fleste tilfeller er det meningsløst å deallokere memory rett før programmet avsluttes. OS vil kreve det tilbake uansett. Gratis vil berøre og søke i de døde objektene; OS vil ikke. Konsekvens: Vær forsiktig med "lekkasjedetektorer" som teller tildelinger.
Er det dyrt å tildele minne?
En naiv måling av kostnadene ved å tildele og frigjøre store minneblokker vil konkludere med at det koster omtrent 7,5 μs for hver allok/gratis par. Det er imidlertid tre separate kostnader per MB for store tildelinger.
Kan frigjøre den tildelte minneplassen hvis ja, hvordan?
Realloc-funksjonen tildeler, omallokerer eller frigjør minneblokken spesifisert av old_blk basert på følgende regler: Hvis old_blk er NULL, vil en ny minneblokk med størrelsesbyte ertildelt. Hvis størrelsen er null, kalles gratisfunksjonen opp for å frigjøre minnet pekt på av old_blk.