Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct A {
- a: i32,
- b: i32
- }
- struct B {
- c: i32,
- suba: A
- }
- fn modify(v: *mut B) {
- let unsafe_ref = unsafe {&mut (*v)};
- unsafe_ref.suba.b += 20;
- }
- fn main() {
- let mut v = B { c: 10, suba: A { a: 5, b: 2 }};
- //println!("v.a {}, v.b {}", v.a, v.b);
- let rp = &mut v as *mut B;
- let subb = &v.suba.b as *const i32;
- modify(rp);
- println!("rp.suba.b {}, subb {}", unsafe { (*rp).suba.b }, unsafe { (*subb) });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement