Function std::boxed::into_rawUnstable
[-] [+]
[src]
pub unsafe fn into_raw<T>(b: Box<T>) -> *mut T where T: ?Sized
Consumes the Box
, returning the wrapped raw pointer.
After call to this function, caller is responsible for the memory
previously managed by Box
, in particular caller should properly
destroy T
and release memory. The proper way to do it is to
convert pointer back to Box
with Box::from_raw
function, because
Box
does not specify, how memory is allocated.
Function is unsafe, because result of this function is no longer automatically managed that may lead to memory or other resource leak.
Example
fn main() { use std::boxed; let seventeen = Box::new(17u32); let raw = unsafe { boxed::into_raw(seventeen) }; let boxed_again = unsafe { Box::from_raw(raw) }; }use std::boxed; let seventeen = Box::new(17u32); let raw = unsafe { boxed::into_raw(seventeen) }; let boxed_again = unsafe { Box::from_raw(raw) };