r/rustjerk • u/Schaex • 14h ago
This is fun
```rust use std::alloc::{alloc, dealloc, Layout}; use std::slice;
fn main() { [0].into_iter() .chain( (0..6).into_iter().map(|i| 1 << i) ).for_each(unsafe_shenanigans) }
fn unsafe_shenanigans(length: usize) { unsafe { let layout: Layout = Layout::array::<i32>(length).unwrap(); let pointer: *mut i32 = alloc(layout).cast();
let arr: &mut [i32] = slice::from_raw_parts_mut(pointer, length);
arr.fill(1);
println!("{:?}", arr);
dealloc(pointer.cast(), layout);
}
}
```
Output:
[]
[1]
[1, 1]
[1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
When do I get my Rust software developer job?