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