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

Тип CString

Тип CString представляет собой владеющую строку, завершающуюся нулевым байтом. Он используется для безопасного создания и передачи строк в C-функции через FFI. В отличие от CStr, который является заимствованным срезом, CString владеет своей памятью. Параметром конструктор принимает срез байтов или строку, которая не должна содержать внутренних нулевых байтов.

Синтаксис

use std::ffi::CString; CString::new(s)

Пример

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

use std::ffi::CString; fn main() { let cs = CString::new("abcde").unwrap(); println!("{}", cs.as_bytes().len()); }

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

5

Пример

Давайте получим указатель на C-строку с помощью метода as_ptr и проверим, что последний байт равен нулю:

use std::ffi::CString; fn main() { let cs = CString::new("12345").unwrap(); let ptr = cs.as_ptr(); unsafe { println!("{}", *ptr.add(5)); } }

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

0

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

  • метод new,
    который создаёт новый CString из строки или байтов
  • метод as_ptr,
    который возвращает указатель на C-строку
  • метод into_raw,
    который передаёт владение указателем без освобождения памяти
  • тип CStr,
    который представляет заимствованную C-строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить