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

Функция null_mut

Функция null_mut создает нулевой изменяемый указатель (*mut T) для указанного типа. Она возвращает указатель, который не указывает на какой-либо допустимый адрес в памяти. Параметром функция принимает тип указателя, который нужно создать. Функция является безопасной для вызова, однако разыменование полученного указателя требует unsafe-блока, так как обращение к нулевому указателю приводит к неопределенному поведению.

Синтаксис

std::ptr::null_mut::<T>()

Пример

Давайте создадим нулевой изменяемый указатель на тип i32 и проверим, является ли он нулевым:

fn main() { let ptr: *mut i32 = std::ptr::null_mut(); println!("{:?}", ptr.is_null()); }

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

true

Пример

Давайте сравним нулевой указатель, созданный через null_mut, с указателем, полученным из изменяемой переменной:

fn main() { let mut value = 42; let ptr1: *mut i32 = std::ptr::null_mut(); let ptr2: *mut i32 = &mut value; println!("{:?}", ptr1.is_null()); println!("{:?}", ptr2.is_null()); }

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

true false

Пример

Давайте создадим нулевой указатель и убедимся, что его нельзя безопасно разыменовать без проверки:

fn main() { let ptr: *mut i32 = std::ptr::null_mut(); if !ptr.is_null() { unsafe { println!("{}", *ptr); } } else { println!("Pointer is null"); } }

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

"Pointer is null"

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

  • функция null,
    которая создает нулевой неизменяемый указатель
  • тип mut-pointer,
    который представляет изменяемый сырой указатель
  • тип const-pointer,
    который представляет неизменяемый сырой указатель
  • ключевое слово unsafe,
    которое позволяет выполнять небезопасные операции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить