Function std::ptr::read 1.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.
Safety
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.
Examples
Basic usage:
let x = 12; let y = &x as *const i32; unsafe { assert_eq!(std::ptr::read(y), 12); }Run