Утечка памяти в C, C ++; забыл сделать бесплатно, удалить

Мы выделяем память в C, используя malloc, и в C ++, используя new. Я знаю, что выделенная память должна быть освобождена или возвращена ОС, использующей free в C, и удалена в C ++. Если я забыл использовать free / delete после выделения памяти, значит, будет утечка памяти.

Теперь мой вопрос заключается в том, является ли эта утечка памяти только во время выполнения программы; или это постоянная утечка / потеря или она снова появляется после перезагрузки системы? Каков внутренний процесс на самом деле? Что именно означает утечка / потеря памяти?

Я был бы очень признателен, если бы кто-то мог объяснить это подробно или предоставить мне несколько хороших ссылок.

ОБНОВЛЕНИЕ 1

Прочитав некоторые ответы, я узнал, что память возвращается к ОС / системе после завершения программы, если это так, почему всем нужно так заботиться об утечке памяти и почему предотвращение утечки памяти очень важно?

ОБНОВЛЕНИЕ 2

Таким образом, утечка памяти должна быть предотвращена, чтобы система неСбой из-за нехватки памяти для распределения

ОБНОВЛЕНИЕ 3

Итак, прочитав все ответы, я понял, что утечка памяти - это очень важные вопросы для предотвращения сбоев системы. Но для новичка, как я, как я могу быть уверен, что моя программа полностью свободна от утечки памяти. Я пытаюсь сделать бесплатно, удалить, если я использую malloc, новый, но иногда это становится грязным. Есть ли какой-либо инструмент или метод, который я могу использовать, чтобы узнать, не вызывает ли утечка памяти в моей программе?

ОБНОВЛЕНИЕ 4

Прочитав ответы, я теперь понял важность кода без утечек памяти, меньшего использования new / delete, большего использования STL, изучения новых вещей, таких как RAII, valgrind и хороших практик программирования. Спасибо всем :)

Ответы на вопрос(18)

Ваш ответ на вопрос