Manejo Manual de Memoria
Eres tú quien asigna y desasigna la memoria del heap.
Si no lo haces con cuidado, podrían producirse fallos, errores, vulnerabilidades de seguridad y pérdidas de memoria.
Ejemplo en C
Debes llamar a free
en cada puntero que asignes con malloc
:
void foo(size_t n) {
int* int_array = malloc(n * sizeof(int));
//
// ... lots of code
//
free(int_array);
}
La memoria se pierde si la función devuelve un resultado antes de tiempo entre malloc
y free
: el puntero se pierde y no podemos anular la asignación de la memoria. Peor aún, si se libera el puntero dos veces o si se accede a uno liberado, pueden producirse vulnerabilidades de seguridad de las que otros podrían aprovecharse.