Это не столько вопрос C ++, сколько вопрос операционной системы.
Все операционные системы, о которых я знаю, будут восстанавливать выделенную обычную память. Это связано с тем, что выделение обычно происходит из частного адресного пространства процессов, которое будет освобождено при выходе.
Это может быть неверно для других ресурсов, таких как общая память. Существуют реализации, которые не освобождают сегменты совместно используемой памяти, если вы специально не отметите их для удаления до выхода из процесса (и даже тогда они не будут удалены, пока все не отсоединятся).