OhMyLaw
2022-10-29 14:22:30
Je m'initie à ce langage et y'a un truc qui m'intrigue avec la mutabilité et la durée de vie des variables : je ne comprends pas pourquoi le code suivant ne marche pas : https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=6809e9aaeffe861e2fae98ccfc0d2e1a
Comme je viens d'un background C/C++ je fais une analogie avec les pointeurs et dans la fonction test l'argument arg est une variable mutable, locale à cette fonction, qui pointe vers un i32 emprunté ailleurs (non modifiable dans ce contexte).
Puisque arg est mutable je souhaite le faire pointer vers un autre i32 local à cette fonction (comme arg lui même), mais n'impactant en rien l'objet référencé qui a été passé à cette fonction (ce qui est pointé par arg avant que arg ne soit changé pour pointer sur n à la place).
Je comprends pas pourquoi le compilo fait chier alors que arg et n seront détruits au même moment, c'est a dire a la fin de la fonction test donc où est le putain de problème de durée de vie ?