#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::ptr; fn main() { let mut array: [i32; 4] = [0, 1, 2, 3]; let array_ptr: *mut i32 = array.as_mut_ptr(); let x = array_ptr as *mut [i32; 3]; let y = unsafe { array_ptr.add(1) } as *mut [i32; 3]; unsafe { ptr::swap(x, y); assert_eq!([1, 0, 1, 2], array); } }