我刚刚开始用 Rust 编码几天,在这里偶然发现了这个我不明白的案例
struct Foo {
arr: [u8; 5]
}
fn main() {
let foo = Foo{ arr: [0; 5] };
let bar = &foo;
println!("{}", bar.arr[100]);
}
Run Code Online (Sandbox Code Playgroud)
为什么这段代码可以编译?编译器看不到那里有越界错误吗?当我尝试打印时它可以检测到它foo.arr[100],那么是什么给出了呢?
rust ×1