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.