MST

星途 面试题库

面试题:Rust数组内存管理基础

在Rust中,数组是如何在栈上分配内存的?请举例说明一个固定大小数组的内存分配和释放过程。
36.8万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

在Rust中,固定大小的数组在编译时其大小就已知,因此会在栈上分配内存。

以下是一个固定大小数组的内存分配和释放过程的示例:

fn main() {
    // 定义一个固定大小的数组
    let numbers: [i32; 5] = [1, 2, 3, 4, 5];
    // 此时数组`numbers`在栈上分配内存,存放这5个i32类型的值
    // 当`numbers`离开其作用域时,会自动释放内存
}
// `numbers`离开作用域,栈上为其分配的内存被释放

在上述示例中,let numbers: [i32; 5] = [1, 2, 3, 4, 5];语句定义了一个包含5个i32类型元素的数组numbers。Rust编译器在编译时知道数组的大小为5,会在栈上为其分配连续的内存空间来存放这5个i32值。当numbers离开其作用域(main函数结束)时,栈上为其分配的内存会自动释放。