vault backup: 2025-12-16 18:44:55
This commit is contained in:
parent
c64e01ea4d
commit
402d1c2ef1
2
4.2/2.md
2
4.2/2.md
@ -86,7 +86,7 @@ fn main() {
|
||||
С появлением сырых указателей возникает важный нюанс: раз компилятор не может контролировать корректность памяти, ответственность за её корректное использование будет ложится на программиста. Так как такой функционал необходим, но перечит памяти-безопасности языка, такой код отделяется в специальный unsafe блок.
|
||||
## Unsafe
|
||||
Ключевое слово unsafe означает потенциально не безопасный код с точки зрения компилятора. При написании блока unsafe ответственность за правильность и безопасность ложится на программиста. Но, при этом, rust внутри блока не превращается в некий аналог C. Компилятор просто разрешает программисту выполнять некоторые {{дополнительные действия}}[https://doc.rust-lang.org/reference/unsafety.html], в которые входят:
|
||||
- Дереференс сырого указателя
|
||||
- Дереференс сырого указателя ()
|
||||
- Вызов unsafe функции (к примеру, определенной через extern)
|
||||
- Чтение/запись mut static переменной
|
||||
- Имплементация unsafe трейта
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user