Gratis (funktion)

gratis (från  engelska  -  "release") - en funktion av standardbiblioteket för C- språket , utformat för att frigöra tidigare tilldelat dynamiskt minne .

Beskrivning av funktionen

#include <stdlib.h> void free ( void * ptr );

Utnämning

Funktionen tar en pekare till området som ska frigöras, eller NULL . Det finns inget returvärde. free()kontrollerar inte pekaren för giltighet, och kan "frigöra" ett icke-allokerat minnesområde, vilket i vissa implementeringar kan leda till oåterkalleliga skador på högen ( engelska  heap ). Att anropa en funktion med NULL är säkert (kontroll av NULL måste göras internt free()enligt standarden). För att undvika högkorruption rekommenderar vissa C-språkmanualer att nollställa varje frigjord pekare.

En minnesregion som frigörs efter ett samtal free()kan allokeras igen, men frekventa samtal till malloc kanfree() leda till heapfragmentering och oförmåga att allokera stora minnesområden.

Funktionen deklareras i huvudfilerna malloc.h , stdlib.h . En exakt beskrivning av funktionens beteende ges i ANSI C -standarden och hänvisas till i POSIX- standarden .

Funktionsargument

  • ptr  är en pekare till ett minnesområde som tidigare allokerats av malloc , calloc , realloc- funktioner eller NULL .

Användningsexempel

pekare = malloc ( antal_element * storlek på ( * pekare )); /* ... kontrollera om minnesallokeringen lyckades, använd minnesblocket ... */ gratis ( pekare ); pekare = NULL ;

Se även

Länkar