MST

星途 面试题库

面试题:Rust函数指针基本使用及内存管理

请编写一段Rust代码,展示如何声明并使用函数指针,同时在这个过程中,阐述如何确保内存安全,避免悬空指针等内存管理问题。
20.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn add(a: i32, b: i32) -> i32 {
    a + b
}

fn main() {
    // 声明函数指针类型
    let func_ptr: fn(i32, i32) -> i32 = add;

    // 使用函数指针调用函数
    let result = func_ptr(2, 3);
    println!("The result of addition is: {}", result);

    // Rust确保内存安全,避免悬空指针等问题主要通过所有权系统
    // 1. 所有权规则:每个值都有一个所有者,同一时刻一个值只能有一个所有者,所有者离开作用域时,值被释放
    // 2. 借用:可以在不转移所有权的情况下使用值,但有规则确保不会产生悬空指针。例如,不能在借用的值超出其生命周期后再使用借用
    // 3. 生命周期标注:在涉及泛型时,通过生命周期标注明确引用的生命周期关系,确保引用在有效的生命周期内使用
}