Dereferencing Raw Pointers

포인트 생성은 안전합니다. 하지만 역참조할 경우 unsafe가 필요합니다:

Creating pointers is safe, but dereferencing them requires unsafe:

fn main() {
    let mut num = 5;

    let r1 = &mut num as *mut i32;
    let r2 = &num as *const i32;

    unsafe {
        println!("r1 is: {}", *r1);
        // 만약 r1이 동시 쓰기가 되면 데이터 레이스가 발생합니다!
        *r1 = 10;  // Data race if r1 is being written concurrently!
        println!("r2 is: {}", *r2);
    }
}