【发布时间】:2017-12-18 18:47:30
【问题描述】:
这段代码:
let mut a2 = 99;
let b: *mut i32 = &mut a2;
*b = 11; // does not compile , even after unsafe {*b}
产生错误:
error[E0133]: dereference of raw pointer requires unsafe function or block
--> src/main.rs:4:5
|
4 | *b = 11;
| ^^^^^^^ dereference of raw pointer
但是这段代码有效:
let mut a2 = 99
let b = &mut a2;
*b = 11;
两者有什么区别?
【问题讨论】:
-
unsafe {}有什么问题?也许你放错地方了? play.rust-lang.org/…