1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
use std::mem;

pub fn allocate<T>(num: usize) -> *mut T {
    let vec = Vec::<T>::with_capacity(num);
    let rptr = vec.as_ptr();
    mem::forget(vec);
    rptr as *mut T
}

pub fn deallocate<T>(tofree: *mut T, num: usize) {
    unsafe {
        Vec::from_raw_parts(tofree, 0, num);
    }
}