Задать вопрос
@CNNRNN

Выделяется ли память при создание &str?

Есть массив байтов и я хочу первые 10 байтов конвертировать в строку .
если я сделаю String::from_utf8_lossy() это вернет &str.
Правильно ли я понимаю, что &str это адрес тех 10 байтов и фактически память будет выделена только создания ссылки ? Спасибо!
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    Rust Developer. Professional
    5 месяцев
    Далее
  • OTUS
    Разработка децентрализованных приложений
    5 месяцев
    Далее
  • Яндекс Практикум
    RUST
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
keksmen
@keksmen
Just a programmer
Тут есть немного недопонимания. Под выделением памяти обычно подразумевают её выделение в динамической памяти, в то время как переменные и аргументы живут в стековой памяти.

А теперь, отвечая на ваш вопрос:
  • Да, &str - это действительно лишь адрес байтов и длина среза, на который адрес ссылается.
  • Нет, динамическая память при этом не выделяется, т.к. хранение на стеке предсказуемо, однозначно и достаточно для этого случая.
Ответ написан
Комментировать
john36allTa
@john36allTa
alien glow of a dirty mind
Забыли про длину..
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы