Liber (funcție)

free (din  engleză  -  "release") - o funcție a bibliotecii standard a limbajului C , concepută pentru a elibera memoria dinamică alocată anterior .

Descrierea funcției

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

Numire

Funcția ia un pointer către zona de eliberat sau NULL . Nu există valoare de returnare. free()nu verifică validitatea indicatorului și poate „elibera” o zonă de memorie nealocată, ceea ce în unele implementări poate duce la deteriorarea ireversibilă a heap -ului ( heap în engleză  ). Apelarea unei funcții cu NULL este sigură (verificarea pentru NULL trebuie făcută intern conform standardului). Pentru a evita coruperea heap-ului, unele manuale în limbaj C recomandă eliminarea la zero a fiecărui pointer eliberat. free()

O regiune de memorie eliberată după un apel free()poate fi alocată din nou, totuși apelurile frecvente către malloc potfree() duce la fragmentarea heap -ului și la incapacitatea de a aloca suprafețe mari de memorie.

Funcția este declarată în fișierele de antet malloc.h , stdlib.h . O descriere exactă a comportamentului funcției este dată în standardul ANSI C și este menționată în standardul POSIX .

Argumente ale funcției

  • ptr  este un pointer către o zonă de memorie alocată anterior de funcțiile malloc , calloc , realloc sau NULL .

Exemplu de utilizare

pointer = malloc ( numar_elemente * sizeof ( * pointer )); /* ... verificați dacă alocarea memoriei a avut succes, utilizați blocul de memorie ... */ liber ( pointer ); pointer = NULL ;

Vezi și

Link -uri