РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
839 of 1245 menu

Метод leak класса Box

Метод leak класса Box потребляет умный указатель и возвращает изменяемую ссылку &'a mut T со временем жизни 'a. При этом память, выделенная в куче, намеренно не освобождается, то есть происходит утечка памяти. Метод не принимает параметров и может быть полезен, когда нужно получить ссылку на данные, которые должны жить до конца программы, например, для глобальных конфигураций или разделяемых ресурсов.

Синтаксис

Box::leak(b)

Пример

Давайте создадим Box с числом и получим на него статическую ссылку с помощью метода leak:

fn main() { let boxed = Box::new(42); let leaked: &'static mut i32 = Box::leak(boxed); println!("{}", leaked); }

Результат выполнения кода:

42

Пример

Давайте создадим Box со строкой и утечём его, получив статическую ссылку:

fn main() { let boxed = Box::new(String::from("abcde")); let leaked: &'static mut String = Box::leak(boxed); println!("{}", leaked); }

Результат выполнения кода:

"abcde"

Смотрите также

  • класс Box,
    который представляет собой умный указатель на данные в куче
  • метод new,
    который создаёт новый Box с заданным значением
  • метод leak,
    который утекает память и возвращает статическую ссылку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить