The funkce free() v C se používá k uvolnění nebo uvolnění dynamicky alokované paměti a pomáhá snižovat plýtvání pamětí. The C free() funkci nelze použít k uvolnění staticky alokované paměti (např. lokální proměnné) nebo paměti alokované na zásobníku. Lze jej použít pouze k uvolnění paměti haldy dříve přidělené pomocí funkcí malloc(), calloc() a realloc().
Funkce free() je definována uvnitř hlavičkový soubor.

Funkce C free().
Syntaxe funkce free() v C
void free (void * ptr );>
Parametry
- ptr je ukazatel na blok paměti, který je třeba uvolnit nebo uvolnit.
Návratová hodnota
- Funkce free() nevrací žádnou hodnotu.
Příklady free()
Příklad 1:
Následující program C ilustruje použití calloc() funkce pro dynamické přidělování paměti a volný, uvolnit() funkci pro uvolnění této paměti.
C
jak určit velikost monitoru
// C program to demonstrate use of> // free() function using calloc()> #include> #include> int> main()> {> >// This pointer ptr will hold the> >// base address of the block created> >int>* ptr;> >int> n = 5;> >// Get the number of elements for the array> >printf>(>'Enter number of Elements: %d
'>, n);> >scanf>(>'%d'>, &n);> >// Dynamically allocate memory using calloc()> >ptr = (>int>*)>calloc>(n,>sizeof>(>int>));> >// Check if the memory has been successfully> >// allocated by calloc() or not> >if> (ptr == NULL) {> >printf>(>'Memory not allocated
'>);> >exit>(0);> >}> >// Memory has been Successfully allocated using calloc()> >printf>(>'Successfully allocated the memory using '> >'calloc().
'>);> >// Free the memory> >free>(ptr);> >printf>(>'Calloc Memory Successfully freed.'>);> >return> 0;> }> |
>
>Výstup
pole v metodách Java
Enter number of Elements: 5 Successfully allocated the memory using calloc(). Calloc Memory Successfully freed.>
Příklad 2:
Následující program C ilustruje použití malloc() funkce pro dynamické přidělování paměti a volný, uvolnit() funkci pro uvolnění této paměti.
C
// C program to demonstrate use of> // free() function using malloc()> #include> #include> int> main()> {> >// This pointer ptr will hold the> >// base address of the block created> >int>* ptr;> >int> n = 5;> >// Get the number of elements for the array> >printf>(>'Enter number of Elements: %d
'>, n);> >scanf>(>'%d'>, &n);> >// Dynamically allocate memory using malloc()> >ptr = (>int>*)>malloc>(n *>sizeof>(>int>));> >// Check if the memory has been successfully> >// allocated by malloc() or not> >if> (ptr == NULL) {> >printf>(>'Memory not allocated
'>);> >exit>(0);> >}> >// Memory has been Successfully allocated using malloc()> >printf>(>'Successfully allocated the memory using '> >'malloc().
'>);> >// Free the memory> >free>(ptr);> >printf>(>'Malloc Memory Successfully freed.'>);> >return> 0;> }> |
>
>Výstup
Enter number of Elements: 5 Successfully allocated the memory using malloc(). Malloc Memory Successfully freed.>