Académique Documents
Professionnel Documents
Culture Documents
malloc: La función malloc reserva un bloque de memoria y devuelve un puntero void al inicio de la
misma. Tiene la siguiente definición:
void *malloc(size_t size);
donde el parámetro size especifica el número de bytes a reservar. En caso de que no se pueda realizar
la asignación, devuelve el valor nulo (definido en la macro NULL), lo que permite saber si hubo errores
en la asignación de memoria. Funcion utilizada en C
free: La función free sirve para liberar memoria que se asignó dinámicamente. Si el puntero es
nulo, free no hace nada. Además existe la función cfree, que sirve para liberar memoria de los
elementos que han sido reservados con calloc(). Tienen la siguiente definición:
new: Proporciona espacio de almacenamiento persistente, similar pero superior a la función de librería
estándar malloc. Este operador permite crear un objeto de cualquier tipo, incluyendo tipos definidos
por el usuario, y devuelve un puntero (del tipo adecuado) al objeto creado. Su utilización exige que el
usuario declarare un puntero del tipo adecuado; a continuación, debe ser inicializado con el valor
devuelto por el operador. Ventaja superior de C++ sobre C.
delete: El operador delete se usa para liberar la memoria dinámica reservada con new. La expresión
será normalmente un puntero, el operador delete[] se usa para liberar memoria de arrays dinámicos.
Es importante liberar siempre usando delete la memoria reservada con new. Existe el peligro de
pérdida de memoria si se ignora esta regla.
Cuando se usa el operador delete con un puntero nulo, no se realiza ninguna acción. Esto permite
usar el operador delete con punteros sin necesidad de preguntar si es nulo antes. Es similar pero
superior a la función de librería estándar free.
¿Cómo liberar memoria en C?:
El lenguaje C implemente el tipo de gestión manual, es decir que cada programa debe pedir y liberar
memoria manualmente. Para esto se utilizan las funciones malloc() para pedir memoria y free() para
liberar memoria.
free(miPuntero);
Para liberar memoria, en C++ utilizamos las funciones cargadas en las librerías de C++.
El operador delete (palabra clave) ofrece una liberación dinámica de memoria, desasignando un
bloque previamente asignado con new.