我偶然发现了以下场景:
fn compute_values(value: &mut String) {
// the first computation should always work:
let computed_value = String::from("computed value");
// override the default String with the computed value:
*value = computed_value;
// some more code that returns a Result with values or an error message
}
fn main() {
let mut value = String::from("default value");
compute_values(&mut value);
println!("value: {value}")
}
Run Code Online (Sandbox Code Playgroud)
这段代码按照我的预期使用 my 进行编译rustc 1.74.1 (a28077b28 2023-12-04)并输出value: computed value,但问题是,该代码是否泄漏内存。
据我了解,*value = computed_value;进入并且它不再可用(rust编译器确认了这一点,我之后不能computed_value。)并且在函数作用域结束时不会取消分配。由于这一行有效地将 a 分配给 …
rust ×1