本文简要介绍rust语言中 Function core::ptr::swap_nonoverlapping
的用法。
用法
pub unsafe fn swap_nonoverlapping<T>(x: *mut T, y: *mut T, count: usize)
掉期count * size_of::<T>()
两个内存区域之间的字节起始于x
和y
。两个地区必须不是重叠。
安全性
如果违反以下任何条件,则行为未定义:
-
对于
count * size_of::<T>()
字节的读取和写入,x
和y
都必须是 valid。 -
x
和y
都必须正确对齐。 -
内存区域开始于
x
大小为count * size_of::<T>()
字节必须不是与开始于的内存区域重叠y
具有相同的尺寸。
请注意,即使有效复制的大小 ( count * size_of::<T>()
) 是 0
,指针也必须非空且正确对齐。
例子
基本用法:
use std::ptr;
let mut x = [1, 2, 3, 4];
let mut y = [7, 8, 9];
unsafe {
ptr::swap_nonoverlapping(x.as_mut_ptr(), y.as_mut_ptr(), 2);
}
assert_eq!(x, [7, 8, 3, 4]);
assert_eq!(y, [1, 2, 9]);
相关用法
- Rust swap用法及代码示例
- Rust str.make_ascii_uppercase用法及代码示例
- Rust slice.sort_unstable_by_key用法及代码示例
- Rust slice.iter_mut用法及代码示例
- Rust symlink用法及代码示例
- Rust slice.windows用法及代码示例
- Rust slice.repeat用法及代码示例
- Rust slice.group_by_mut用法及代码示例
- Rust slice.align_to_mut用法及代码示例
- Rust size_of用法及代码示例
- Rust slice.as_chunks_unchecked用法及代码示例
- Rust str.strip_suffix用法及代码示例
- Rust str.trim_left用法及代码示例
- Rust slice.fill用法及代码示例
- Rust slice.array_windows用法及代码示例
- Rust slice.sort_unstable_by用法及代码示例
- Rust slice.sort用法及代码示例
- Rust str.char_indices用法及代码示例
- Rust str.to_ascii_lowercase用法及代码示例
- Rust str用法及代码示例
- Rust slice.rotate_left用法及代码示例
- Rust slice.as_mut_ptr用法及代码示例
- Rust str.trim用法及代码示例
- Rust stringify用法及代码示例
- Rust str.split_terminator用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Function core::ptr::swap_nonoverlapping。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。