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 .
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 .