It certainly doesn't survive beyond program termination. The idea is to free memory when not needed anymore so that your program doesn't waste memory (it doesn't consume more then it really needs) or, even worse, doesn't run out of memory (depending on your allocation pattern)