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) };