Zdarma (funkce)

free (z  angličtiny  -  "release") - funkce standardní knihovny jazyka C , určená k uvolnění dříve přidělené dynamické paměti .

Popis funkce

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

Schůzka

Funkce vezme ukazatel na oblast, která má být uvolněna, neboli NULL . Neexistuje žádná návratová hodnota. free()nekontroluje platnost ukazatele a může „uvolnit“ nealokovanou paměťovou oblast, což v některých implementacích může vést k nevratnému poškození haldy ( anglicky  heap ). Volání funkce s NULL je bezpečné (kontrola NULL musí být provedena interně free()podle standardu). Aby se zabránilo poškození haldy, některé příručky jazyka C doporučují vynulovat každý uvolněný ukazatel.

Oblast paměti uvolněná po volání free()lze znovu alokovat, avšak časté volání malloc můžefree() vést k fragmentaci haldy a nemožnosti alokovat velké oblasti paměti.

Funkce je deklarována v hlavičkových souborech malloc.h , stdlib.h . Přesný popis chování funkce je uveden ve standardu ANSI C a odkazuje se na něj ve standardu POSIX .

Funkce Argumenty

Příklad použití

ukazatel = malloc ( počet_prvků * velikost ( * ukazatel )); /* ... zkontrolujte, zda alokace paměti proběhla úspěšně, použijte paměťový blok ... */ zdarma ( ukazatel ); ukazatel = NULL ;

Viz také

Odkazy