编辑代码

use std::alloc::{alloc, Layout};

fn main() {
    // 假设 lvhBufferPtr 指向一段合法的 Rust 分配的内存
    let length = 10;
    let capacity = 10;
    
    // 分配内存(模拟已有指针的场景)
    let lvhBufferPtr = unsafe {
        let layout = Layout::array::<u8>(capacity).unwrap();
        alloc(layout) as *mut u8
    };

    // 将指针绑定到 Vec(不拷贝数据)
    let lvBuffer = unsafe {
        // 参数:指针、长度、容量
        Vec::from_raw_parts(lvhBufferPtr, length, capacity)
    };

    // 此后,lvBuffer 拥有该内存,不可再使用 lvhBufferPtr
    // 当 lvBuffer 被 drop 时,内存会被自动释放
}