memory management is the business of allocating and deallocating resources that occupy memory.
In languages like C, programmers must concern themselves with direct memory management, using pointers to keep track of memory that has been allocated from the heap, and devising a strategy for determine when to deallocate the memory. Tcl shields programmers from direct memory management at the script level, but deciding when to deallocate resources that occupy memory is still very much part of the life of someone programming in higher-level languages. Most languages and systems are designed around some combination of automatic and manual memory management.
In higher-level languages, memory management is related to scope and namespaces. When a scope terminates, the values associated with that scope are deleted. When the values are not shared, the space they occupy in memory is recovered.