wmemmove, wmemmove_s
From cppreference.net
|
ヘッダーで定義
<wchar.h>
|
||
|
wchar_t
*
wmemmove
(
wchar_t
*
dest,
const
wchar_t
*
src,
size_t
count
)
;
|
(1) | (C95以降) |
|
errno_t wmemmove_s
(
wchar_t
*
dest, rsize_t destsz,
const wchar_t * src, rsize_t count ) ; |
(2) | (C11以降) |
1)
src
が指すワイド文字配列から、連続する
count
個のワイド文字を
dest
が指すワイド文字配列に正確にコピーします。
count
がゼロの場合、関数は何も行いません。配列は重複している可能性があります:コピーは、ワイド文字が一時的なワイド文字配列にコピーされ、その一時配列から
dest
にコピーされるかのように行われます。
2)
(1)
と同様ですが、以下のエラーが実行時に検出され、現在インストールされている
constraint handler
関数を呼び出します:
-
- src または dest がnullポインタの場合
- destsz または count が RSIZE_MAX / sizeof ( wchar_t ) より大きい場合
- count が destsz より大きい場合(オーバーフローが発生する)
-
すべての境界チェック付き関数と同様に、
wmemcpy_sは、実装によって __STDC_LIB_EXT1__ が定義されており、かつユーザーが <wchar.h> をインクルードする前に __STDC_WANT_LIB_EXT1__ を整数定数 1 に定義している場合にのみ利用可能であることが保証されます。
目次 |
パラメータ
| dest | - | コピー先のワイド文字配列へのポインタ |
| src | - | コピー元のワイド文字配列へのポインタ |
| destsz | - | 書き込む最大ワイド文字数(宛先バッファのサイズ) |
| count | - | コピーするワイド文字数 |
戻り値
1)
dest
のコピーを返す
2)
成功時はゼロを返し、エラー時は非ゼロを返します。また、エラー時には、
dst
から
dst
+
dstsz
の手前まで(
dst
がnullの場合、または
destsz
が
RSIZE_MAX
/
sizeof
(
wchar_t
)
より大きい場合を除く)をnullワイド文字
L
'
\0
'
で埋めます。
注記
この関数はロケールに依存せず、コピーする wchar_t オブジェクトの値に注意を払いません:ヌル文字および無効な文字も同様にコピーされます。
例
このコードを実行
出力:
αβγδεζηθικλμνξοπρστυφχψω αβγδδεζθικλμνξοπρστυφχψω
参考文献
- C23規格 (ISO/IEC 9899:2024):
-
- 7.29.4.2.4 wmemmove関数 (p: TBD)
-
- K.3.9.2.1.4 wmemmove_s関数 (p: TBD)
- C17規格 (ISO/IEC 9899:2018):
-
- 7.29.4.2.4 wmemmove関数 (p: TBD)
-
- K.3.9.2.1.4 wmemmove_s関数 (p: TBD)
- C11標準 (ISO/IEC 9899:2011):
-
- 7.29.4.2.4 wmemmove関数 (p: 432)
-
- K.3.9.2.1.4 wmemmove_s関数 (p: 642)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.24.4.2.4 wmemmove関数 (p: 378)
関連項目
|
(C11)
|
バッファを別のバッファに移動する
(関数) |
|
(C95)
(C11)
|
2つの重複しない配列間で指定された量のワイド文字をコピーする
(関数) |
|
C++ documentation
for
wmemmove
|
|