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

Метод as_ptr

Метод as_ptr возвращает необработанный указатель *const u8 на первый байт строкового среза. Строковый срез в Rust не хранит завершающий нулевой байт, в отличие от C-строк, поэтому указатель указывает именно на начало данных без дополнительного \0 в конце. Параметров метод не принимает.

Возвращаемый указатель можно использовать для передачи данных строки в код на C через FFI или для низкоуровневой работы с памятью. Важно помнить, что указатель действителен только пока существует сам строковый срез, и что длина строки не передаётся вместе с указателем - её нужно получать отдельно, например через метод len.

Синтаксис

str.as_ptr()

Пример

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

fn main() { let s = "abcde"; let ptr = s.as_ptr(); println!("{:p}", ptr); }

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

0x...

Пример

Давайте с помощью указателя и метода len прочитаем первый байт строки "12345":

fn main() { let s = "12345"; let ptr = s.as_ptr(); let first = unsafe { *ptr }; println!("{}", first as char); }

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

"1"

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

  • метод as_bytes,
    который возвращает строку как срез байтов
  • метод len,
    который возвращает длину строки в байтах
  • метод as_bytes_mut,
    который возвращает изменяемый срез байтов
  • метод get,
    который возвращает срез строки по указанному диапазону
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить