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

Функция null

Функция null создает нулевой указатель заданного типа. Она возвращает константный нулевой указатель *const T, который не указывает ни на какой объект в памяти. Параметром функция принимает тип указателя, который нужно создать, в виде обобщенного параметра T.

Нулевые указатели часто используются в качестве сигнальных значений или при взаимодействии с внешним кодом. Однако разыменование нулевого указателя является неопределенным поведением, поэтому работа с такими указателями требует особой осторожности и блока unsafe.

Синтаксис

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

Пример

Давайте создадим нулевой указатель на тип i32 и проверим его на равенство с помощью метода is_null:

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

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

true

Пример

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

fn main() { let num = 42; let ptr: *const i32 = std::ptr::null(); let valid_ptr: *const i32 = # println!("{:?}", ptr == std::ptr::null()); println!("{:?}", valid_ptr == std::ptr::null()); }

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

true false

Пример

Давайте используем нулевой указатель в качестве сигнального значения для функции поиска:

unsafe fn find_value(arr: &[i32], target: i32) -> *const i32 { for item in arr { if *item == target { return item; } } std::ptr::null() } fn main() { let arr = [1, 2, 3, 4, 5]; unsafe { let res = find_value(&arr, 3); println!("{:?}", res.is_null()); let res2 = find_value(&arr, 9); println!("{:?}", res2.is_null()); } }

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

false true

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

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