< 返回版块

zhanlanlan 发表于 2019-10-28 15:51

萌新提问。

fn main() { let mut st = String::from("ssss"); let mut st_ = &mut st;

unsafe {
    alloc::dealloc(st_.as_mut_ptr(), alloc::Layout::new::<String>());
}

mem::forget(st_);
mem::forget(st);

}

运行这段函数,我发现没有产生内存释放错误。

forget函数的意思是,不会尝试去释放它,而是直接忘记掉,这样不就造成了内存泄漏吗?

评论区

写评论
hjiayz 2019-10-28 16:14

请参考 https://doc.rust-lang.org/std/mem/fn.forget.html

1 共 1 条评论, 1 页