Потому что это безопасно.
unsafe
имеет очень специфическое значение в Rust, оно специально предназначено для классов ошибок программирования, которые вызывают Неопределенное поведение . Это самые неприятные ошибки, поскольку они полностью подрывают все ваше понимание программы, позволяя компилятору или аппаратному обеспечению вести себя непредсказуемым образом.
Утечки памяти не вызывают Неопределенное поведение , и поэтому безопасны.
Вас может заинтересовать то, что Nomicon (Небезопасный эквивалент Книги Ржавчины) может сказать о Утечка ; пример о ScopeGuard
часто называют Leakpocalypse.
Примечательно, что языки со сборкой мусора могут, например, легко пропускать память. Простой Map
, в котором пары ключ-значение добавляются без удаления, в конечном итоге приведет к исчерпанию кучи; и GC не сможет остановить его.
Постоянно растущий Map
столь же нежелателен, как неоднократно забывать free
указатель, в любом случае вырисовывается куча исчерпания, но в целом языки GC считаются безопасными.