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

Сырой указатель *mut T

Сырой указатель *const T - это тип, представляющий изменяемый указатель на данные типа T. В отличие от безопасных ссылок, сырые указатели не отслеживаются компилятором и не гарантируют безопасность доступа к памяти. Они могут быть нулевыми, висеть в воздухе и указывать на неизменяемые данные. Операции разыменования и записи по такому указателю должны выполняться внутри блока unsafe.

Синтаксис

let ptr: *mut T;

Пример

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

fn main() { let mut num = 10; let ptr: *mut i32 = &mut num; unsafe { *ptr = 20; } println!("{}", num); }

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

20

Пример

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

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

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

"ptr is null"

Пример

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

fn main() { let mut arr = [1, 2, 3]; let ptr: *mut i32 = &mut arr[1]; unsafe { println!("{}", *ptr); } }

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

2

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

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