Skip to content

Instantly share code, notes, and snippets.

@megumish
Created December 21, 2018 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save megumish/1047fe71c39db36b75101a82161fe87b to your computer and use it in GitHub Desktop.
Save megumish/1047fe71c39db36b75101a82161fe87b to your computer and use it in GitHub Desktop.
memcpy in rust
[package]
name = "memcpy"
version = "0.1.0"
authors = ["Keishi Kawada <megumish@exploitouri.st>"]
edition = "2018"
[dependencies]
failure = "0.1.3"
fn memcpy(input: &[u8], output: &mut [u8], size: usize) -> Result<(), failure::Error> {
if output.len() > size {
return Err(failure::err_msg("Too Big"));
}
let mut i = 0;
for x in input[0..size].iter() {
output[i] = *x;
i += 1;
}
Ok(())
}
fn main() -> Result<(), failure::Error>{
let u = [1; 10];
let mut v = [0; 10];
memcpy(&u, &mut v, 10)?;
println!("{:?}", v);
Ok(())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment