Введение в небезопасный код в Rust
Небезопасный код в Rust - это не отказ от правил языка целиком, а узкий участок, где автор явно берет на себя доказательство корректности. Снаружи этого участка программа остается под обычной проверкой типов и владения.
Компилятор по умолчанию не дает делать действия, которые могут нарушить память или срок жизни ссылки. Небезопасный блок снимает часть таких запретов внутри своих скобок и напоминает: дальше отвечает программист, а не автоматическая проверка.
В этом разделе разберем только две связанные вещи: границу такого блока и сырой указатель на живое локальное число. Чтение по адресу своей переменной покажет, где заканчивается помощь компилятора и начинается ручной контроль.
Сначала посмотрим на сам блок, затем на тип указателя без проверки срока и закрепим прием на коротких задачах. Другие приемы небезопасной работы с памятью здесь не разбираем.