rust:penses-bete:deferencement-mutable
Déférencement mutable
- main.rs
#[derive(Debug)]
struct S1 {
texte: String
}
#[derive(Debug)]
struct S2<'a> {
reference: &'a S1
}
fn main() {
let mut o1 = S1 { texte: "coucou ".to_string() };
let mut o2 = S2 { reference: &o1 };
let mut o3 = S2 { reference: &o1 };
let mut ref_o2: *mut S1 = o2.reference as *const S1 as *mut S1;
unsafe {
let mut texte: &mut String = &mut (*ref_o2).texte;
texte.push_str("toi !");
println!("{:?}", &texte);
}
println!("(1) o2 = {:?}", o2);
let mut ref_o2: *mut S1 = o2.reference as *const S1 as *mut S1;
let ref_o2bis: &mut S1 = unsafe {
&mut (*ref_o2)
};
ref_o2bis.texte.push_str(" ça va ? ");
println!("(2) o3 = {:?}", o3);
}
rust/penses-bete/deferencement-mutable.txt · Dernière modification : 2024/01/06 13:02 de 127.0.0.1