Gerenciamento Manual de Memória

Você mesmo aloca e desaloca memória no heap.

Se isto não for feito com cuidado, travamentos, bugs, vulnerabilidades de segurança e vazamentos de memória podem ocorrer.

Exemplo em C

Você deve chamar free em cada ponteiro que alocar com malloc:

void foo(size_t n) { int* int_array = malloc(n * sizeof(int)); // // ... várias linhas de código // free(int_array); }

Memória é vazada se a função retornar mais cedo entre malloc e free: o ponteiro é perdido e não podemos liberar a memória. Pior ainda, liberando o ponteiro duas vezes, ou acessando um ponteiro já liberado pode levar a vulnerabilidades de segurança.