作者yam276 (史莱哲林的优等生)
看板Marginalman
标题Re: [闲聊] Rust: 从入门到入门
时间Fri Mar 21 16:04:10 2025
: 从入门到入门
1. 只要不是借用 非基本类型的变数就会在function使用过转移所有权 导致原本变数失效
fn output_string(name: String) {
println!("{}", name);
}
fn main()
{
let a = String::from("abc");
output_string(a);
println!("{}", a); // 编译失败,a已经转移所有权给name并失效
}
2. Stack Frame
Stack Frame会记录该Stack拥有的变数与其内容
Rust会在每个Stack Frame离开後释放该Stack中拥有所有权的变数
3.下列哪一项不是一种未定义的行为?
A. 使用指向已释放记忆体的指标
B. 在 stack frame 中具有指向已释放记忆体的指标
C. 再次释放相同的记忆体
D. 使用非布林值作为条件if
答案是B
指向已释放记忆体的指标不是未定义行为
使用已释放记忆体的指标才是
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.143.172 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Marginalman/M.1742544252.A.A71.html
※ 编辑: yam276 (60.248.143.172 台湾), 03/21/2025 16:04:55