если для переменно definition это и есть initialization, то скажите мне об этом.
начнем с того, что память не "освобождается" в физическом смысле. С ней ничего не происходит. Просто где-то там при освобождении выстанавливается флаг, что эта память больше не используется и есть свободной. Потом когда дефайним обьект, он просит эту память, чтобы использовать ее в дальнейшем. Но поскольку неизвестно, что было в этой памяти до того, как она стала свободной - то так и получается, что там обычно "мусор". Глобальные же переменные при выделении памяти сразу заполняют ее нулями