Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. struct A {
  2. a: i32,
  3. b: i32
  4. }
  5.  
  6. struct B {
  7. c: i32,
  8. suba: A
  9. }
  10.  
  11. fn modify(v: *mut B) {
  12. let unsafe_ref = unsafe {&mut (*v)};
  13. unsafe_ref.suba.b += 20;
  14. }
  15.  
  16. fn main() {
  17. let mut v = B { c: 10, suba: A { a: 5, b: 2 }};
  18. //println!("v.a {}, v.b {}", v.a, v.b);
  19. let rp = &mut v as *mut B;
  20. let subb = &v.suba.b as *const i32;
  21. modify(rp);
  22. println!("rp.suba.b {}, subb {}", unsafe { (*rp).suba.b }, unsafe { (*subb) });
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement