memcpy、wmemcpy
バッファー間でバイト数をコピーします。 これらの関数のセキュリティを強化したバージョンについては、「memcpy_s、wmemcpy_s」を参照してください。
void *memcpy(
void *dest,
const void *src,
size_t count
);
wchar_t *wmemcpy(
wchar_t *dest,
const wchar_t *src,
size_t count
);
パラメーター
dest
コピー先のバッファー。src
コピー元のバッファー。count
コピーする文字数。
戻り値
dest の値。
解説
memcpy は、count に指定したバイト数を src から dest にコピーします。wmemcpy は、count に指定した数のワイド文字 (2 バイト) をコピーします。 コピー元とコピー先を同じにした場合の memcpy の動作は未定義です。 重なり合う領域を処理するには、memmove を使用します。
セキュリティに関するメモ コピー先のバッファーのサイズがコピー元のバッファーのサイズ以上であることを確認してください。 詳細については、「Avoiding Buffer Overruns」を参照してください。
次の例のように、memcpy 関数および wmemcpy 関数が使用されなくなるように定数 _CRT_SECURE_DEPRECATE_MEMORY をインクルード ステートメントの前で定義すると、これらの関数だけが使用されなくなります。
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <memory.h>
または
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
必要条件
ルーチン |
必須ヘッダー |
---|---|
memcpy |
<memory.h> または <string.h> |
wmemcpy |
<wchar.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
memcpy 関数の使用例については、「memmove」を参照してください。
参照
参照
strncpy_s、_strncpy_s_l、wcsncpy_s、_wcsncpy_s_l、_mbsncpy_s、_mbsncpy_s_l