Gratis (funktion)

free (fra  engelsk  -  "release") - en funktion af standardbiblioteket i C -sproget , designet til at frigive tidligere tildelt dynamisk hukommelse .

Beskrivelse af funktionen

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

Udnævnelse

Funktionen tager en markør til det område, der skal frigøres, eller NULL . Der er ingen returværdi. free()tjekker ikke pointeren for gyldighed, og kan "frigøre" et ikke-allokeret hukommelsesområde, hvilket i nogle implementeringer kan føre til irreversibel skade på heapen ( engelsk  heap ). Det er sikkert at kalde en funktion med NULL (kontrol af NULL skal ske internt free()iht. standarden). For at undgå heap-korruption anbefaler nogle C-sprogmanualer at nulstille hver frigivet pointer.

Et område af hukommelse, der frigøres efter et opkald free(), kan allokeres igen, men hyppige opkald til malloc kanfree() føre til heap-fragmentering og manglende evne til at allokere store hukommelsesområder.

Funktionen er deklareret i header-filerne malloc.h , stdlib.h . En nøjagtig beskrivelse af funktionens adfærd er givet i ANSI C -standarden , og der henvises til i POSIX -standarden .

Funktionsargumenter

  • ptr  er en pegepind til et hukommelsesområde, der tidligere er allokeret af malloc , calloc , realloc- funktioner eller NULL .

Eksempel på brug

pointer = malloc ( antal_elementer * størrelse på ( * pointer )); /* ... tjek om hukommelsestildelingen lykkedes, brug hukommelsesblokken ... */ fri ( pointer ); pointer = NULL ;

Se også

Links