Function std::boxed::into_raw
[−]
[src]
pub unsafe fn into_raw<T>(b: Box<T>) -> *mut T where T: ?Sized
: may be renamed
Consumes the Box
`Box`, returning the wrapped raw pointer.
After call to this function, caller is responsible for the memory
previously managed by Box
`Box, in particular caller should properly destroy
`, in particular caller should properly
destroy T
`Tand release memory. The proper way to do it is to convert pointer back to
` and release memory. The proper way to do it is to
convert pointer back to Box
`Boxwith
` with Box::from_raw
`Box::from_rawfunction, because
` function, because
Box
`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.
Examples
#![feature(alloc)] 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) };