本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。