Function core::slice::from_raw_parts_mut 1.0.0[−][src]
pub unsafe fn from_raw_parts_mut<'a, T>(data: *mut T, len: usize) -> &'a mut [T]
Expand description
执行与 from_raw_parts
相同的功能,除了返回可变切片。
Safety
如果违反以下任一条件,则行为是未定义的:
-
data
len * mem::size_of::<T>()
的多个字节的读取和写入必须是 有效 的,并且必须正确对齐。这尤其意味着:- 该切片的整个存储范围必须包含在一个分配的对象中! 切片永远不能跨越多个分配的对象。
data
必须为非 null,并且即使对于零长度的切片也必须对齐。 这样做的一个原因是,枚举布局优化可能依赖于对齐的引用 (包括任何长度的切片) 和非空值,以将它们与其他数据区分开。
您可以使用
NonNull::dangling()
获得可用作零长度切片的data
的指针。 -
data
必须指向len
类型正确的连续T
初始化值。 -
在生命周期
'a
的持续时间内,不得通过任何其他指针 (不是从返回值派生) 访问返回的切片引用的内存。 读取和写入访问均被禁止。 -
切片的总大小
len * mem::size_of::<T>()
必须不大于isize::MAX
。 请参见pointer::offset
的安全文档。