Мы выделяем память в C, используя malloc и в С++, используя new. Я знаю, что выделенная память должна быть освобожденными или возвращенными ОС, используя свободный в C и удалять на С++. Если я забыл использовать free/delete после выделения памяти, это означает, что произойдет утечка памяти.
Теперь, мой вопрос: это утечка памяти только в течение периода выполнения программы; или это постоянная утечка/потеря или она снова получена после перезапуска системы? Каков внутренний процесс? Что означает утечка/потеря памяти?
Я был бы очень благодарен, если бы кто-нибудь мог объяснить это подробно или предоставить мне несколько хороших ссылок.
ОБНОВЛЕНИЕ 1
После прочтения некоторых ответов я узнал, что память возвращается в ОС/систему после завершения программы, если это так, почему каждый должен так заботиться об утечке памяти, и почему очень важно предотвратить утечку памяти?
ОБНОВЛЕНИЕ 2
Таким образом, следует предотвратить утечку памяти, чтобы система не разбилась из-за нехватки памяти для целей распределения.
ОБНОВЛЕНИЕ 3
Итак, прочитав все ответы, я понял, что утечка памяти - это очень важные проблемы, чтобы предотвратить сбои системы. Но для начинающего, как я, как я могу быть уверенным, что моя программа полностью свободна от утечки памяти. Я пытаюсь сделать бесплатный, удалить, если я использую malloc, но иногда, но он становится беспорядочным. Есть ли какой-либо инструмент или метод, который я могу использовать, чтобы узнать, протекает ли моя программа с утечкой памяти?
ОБНОВЛЕНИЕ 4
После прочтения ответов я теперь понял важность свободного от утечки памяти кода, меньше использования новых/удаления, больше использования STL, узнал новые вещи, такие как RAII, valgrind и хорошие методы программирования. Спасибо всем:)