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
|
||||||
Ключевое слово unsafe означает потенциально не безопасный код с точки зрения компилятора. При написании блока unsafe ответственность за правильность и безопасность ложится на программиста. Но, при этом, rust внутри блока не превращается в некий аналог C. Компилятор просто разрешает программисту выполнять некоторые {{дополнительные действия}}[https://doc.rust-lang.org/reference/unsafety.html], в которые входят:
|
Ключевое слово unsafe означает потенциально не безопасный код с точки зрения компилятора. При написании блока unsafe ответственность за правильность и безопасность ложится на программиста. Но, при этом, rust внутри блока не превращается в некий аналог C. Компилятор просто разрешает программисту выполнять некоторые {{дополнительные действия}}[https://doc.rust-lang.org/reference/unsafety.html], в которые входят:
|
||||||
- Дереференс сырого указателя
|
- Дереференс сырого указателя ()
|
||||||
- Вызов unsafe функции (к примеру, определенной через extern)
|
- Вызов unsafe функции (к примеру, определенной через extern)
|
||||||
- Чтение/запись mut static переменной
|
- Чтение/запись mut static переменной
|
||||||
- Имплементация unsafe трейта
|
- Имплементация unsafe трейта
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user