Io mi chiederei anche chi libera la memoria alla fine.
Il C++ non ha nessun Garbage Collector, quindi la memoria rimane allocata fino al termine del programma.