小编com*_*tor的帖子

Rust向量是连续分配的吗?

我是 Rust 新手,正在研究向量实现。我尝试多次调整向量大小并使用以下代码检查元素的地址:

fn main() {
    let mut vector = Vec::new();

    for i in 1..100 {
        println!(
            "Capacity:{}, len: {}, addr: {:p}",
            vector.capacity(),
            vector.len(),
            &vector,
        );
        vector.push(i);
    }
    println!("{:p}", &vector[90]);
}
Run Code Online (Sandbox Code Playgroud)

它给了我输出(最后两行):

Capacity:128, len: 98, addr: 0x7ffebe7a6930
addr of 90-element: 0x5608b516bd08
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么第 90 个元素位于另一个内存位置?我想它应该在0x7ffebe7a6930地址附近的某个地方。

malloc memory-management rust

3
推荐指数
1
解决办法
1387
查看次数

标签 统计

malloc ×1

memory-management ×1

rust ×1