Whenever we are working with heap memory, we as programmer are responsible for managing memory. Managing heap memory has traditionally been difficult task. This is the case with traditional programming languages like C,C++.
Microsoft: 70 percent of all security bugs are memory safety issues - ZDNet
Since memory management has been tedious tasks, various programming languages have evolved to provide these features. C#, Java, Python all provides memory management as a feature so that programmer has no longer to worry about memory management.
The feature of language to manage memory for programmer is called Garbage collection. Garbage collection can be thought as a side running program that manages heap allocation and de-allocation.