Утечки не нарушают безопасность памяти
• оригинал: Huon Wilson • перевод: Станислав Ткач • обучение • поддержите на Patreon
Ошибки доступа к памяти и утечки памяти представляют собой две категории ошибок, которые привлекают больше всего внимания, так что на предотвращение или хотя бы уменьшение их количества направлено много усилий. Хотя их название и предполагает схожесть, однако они в некотором роде диаметрально противоположны и решение одной из проблем не избавляет нас от второй. Широкое распространение управляемых языков подтверждает эту идею: они предотвращают некоторые ошибки доступа к памяти, беря на себя работу по освобождению памяти.
Проще говоря: нарушение доступа к памяти — это какие-то действия с некорректными данными, а утечка памяти — это отсутствие определённых действий с корректными данными. В табличной форме:
1 2 3 | Корректные данные Некорректные данные Используются OK Ошибка доступа к памяти Не используются Утечка памяти OK |