Libre (función)

libre (del  inglés  -  "liberar") - una función de la biblioteca estándar del lenguaje C , diseñada para liberar la memoria dinámica previamente asignada .

Descripción de la función

#incluir <stdlib.h> vacío libre ( vacío * ptr );

Cita

La función toma un puntero al área a liberar, o NULL . No hay valor de retorno. free()no verifica la validez del puntero y puede "liberar" un área de memoria no asignada, lo que en algunas implementaciones puede provocar daños irreversibles en el montón ( montón en inglés  ). Llamar a una función con NULL es seguro (la verificación de NULL debe hacerse internamente de acuerdo con el estándar). Para evitar la corrupción del montón, algunos manuales en lenguaje C recomiendan poner a cero cada puntero liberado. free()

Una región de memoria liberada después de una llamada free()se puede volver a asignar; sin embargo, las llamadas frecuentes a malloc puedenfree() provocar la fragmentación del montón y la incapacidad de asignar grandes áreas de memoria.

La función se declara en los archivos de encabezado malloc.h , stdlib.h . Se proporciona una descripción exacta del comportamiento de la función en el estándar ANSI C y se hace referencia en el estándar POSIX .

Argumentos de función

  • ptr  es un puntero a un área de memoria asignada previamente por las funciones malloc , calloc , realloc o NULL .

Ejemplo de uso

puntero = malloc ( número_de_elementos * tamaño de ( * puntero )); /* ... verifique si la asignación de memoria fue exitosa, use el bloque de memoria ... */ libre ( puntero ); puntero = NULL ;

Véase también

Enlaces