docs for slice::from_raw_parts
警告程序员用正确的生命周期注释切片.我假设,给定一些生命周期'a
,我可以用
let myslice: &'a mut [i32] = std::slice::from_raw_parts_mut(ptr, sz)
我也认为
- 因为
myslice
是一个引用,所以它与ptr指向的基础数据的分配/解除分配无关.生命周期注释不会影响数据的内存管理. -
myslice
本身的内存管理(即包含指针和大小的 struct )没有什么棘手的地方.它就像其他任何 struct 或i32
一样.如果我把它放在Box
中,那么std::raw::slice
struct 将在Box
死后被释放.当然,切片引用的数据不会被释放.生存期不会影响片的内存管理.
为什么正确的人生观很重要?在设置切片生命周期 时,释放后使用是唯一需要担心的危险吗?