Function std::ptr::read1.0.0 [] [src]

pub unsafe fn read<T>(src: *const T) -> T

Reads the value from src without moving it. This leaves the memory in src unchanged.


Beyond accepting a raw pointer, this is unsafe because it semantically moves the value out of src without preventing further usage of src. If T is not Copy, then care must be taken to ensure that the value at src is not used before the data is overwritten again (e.g. with write, write_bytes, or copy). Note that *src = foo counts as a use because it will attempt to drop the value previously at *src.

The pointer must be aligned; use read_unaligned if that is not the case.


Basic usage:

let x = 12;
let y = &x as *const i32;

unsafe {
    assert_eq!(std::ptr::read(y), 12);