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