Когда я впервые начал программировать на C, я должен был быть очень методичным с моими malloc и realloc, и я должен был освободить все, что я не использовал. Это была простая задача с крошечными заданиями колледжа, такими как создание бинарного дерева. Простой ...
Теперь, когда я начал разрабатывать приложение с графическим интерфейсом, написанным на всех C, мне приходилось больше думать и программировать из-за того, что я должен обращать внимание на возможные утечки памяти. Это становилось проблемой. Я бы предпочел иметь половинный продукт, чем половинный продукт.
Я начал переходить на Java и C #. Мне понравилось, что все, что мне нужно было сделать, это разыменовать объект, и сборщик мусора придет и заберет его для меня. Я также заметил, что мои программы работали немного медленнее с использованием Java Swing (как и ожидалось), но это было управляемым.
По моим выводам, поскольку процессоры становятся дешевле, а память становится все дешевле и быстрее, а программы с графическим интерфейсом потребляют больше памяти, чем раньше. Сборщик мусора действительно помогает с выходом продукта, который работает с минимальными проблемами с утечками памяти. Действительно удобно и может привести к плохим привычкам кодирования, однако это можно исправить.
EDIT:
Также посмотрите это , оно может помочь вам ответить на ваши вопросы. Хорошо читать ИМО