pub unsafe fn zeroed<T>() -> T
Creates a value whose bytes are all zero.
This has the same effect as allocating space with mem::uninitialized
and then zeroing it out. It is useful for FFI sometimes, but should generally be avoided.
There is no guarantee that an all-zero byte-pattern represents a valid value of some type T
. If T
has a destructor and the value is destroyed (due to a panic or the end of a scope) before being initialized, then the destructor will run on zeroed data, likely leading to undefined behavior.
See also the documentation for mem::uninitialized
, which has many of the same caveats.
use std::mem; let x: i32 = unsafe { mem::zeroed() }; assert_eq!(0, x);
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/mem/fn.zeroed.html