memória alocada dinâmicamente com o malloc deve ser liberada, usando o free(ponteiro). Se não for desalocada essa memória ficará perdida até que o computador seja desligado.
bom eu não tenho muita certeza mas acontece igual em qualquer linguagem; ao encerrar a aplicação os ponteiros para esses endereços é perdido, logo, não tendo pai o sistema operacional enxerga isso como uma memória livre. independente de como você alocou a memória.