logo

C/C++ の memcpy()

C および C++ の memcpy() 関数は、メモリのブロックをある場所から別の場所にコピーするために使用されます。他のコピー機能とは異なり、 memcpy この関数は、保存されているデータの種類に関係なく、指定されたバイト数を 1 つのメモリ位置から別のメモリ位置にコピーします。

で宣言されています ヘッダファイル。 C++ では、内部でも定義されます。 ヘッダファイル。



memcpyの構文

memcpy 関数は次のように宣言されます。

void * memcpy (void * to , const void * from , size_t numBytes );>

パラメーター

    to : コピーされたデータが保存されるメモリ位置へのポインタ。 from : データのコピー元のメモリ位置へのポインタ。 numBytes : コピーされるバイト数。

戻り値

  • この関数は、データがコピーされるメモリ位置へのポインタを返します。

memcpyの例

以下は memcpy() の動作を示す C プログラムです。

C








// C program to demonstrate working of memcpy> #include> #include> int> main()> {> >char> str1[] =>'Geeks'>;> >char> str2[] =>'Quiz'>;> >puts>(>'str1 before memcpy '>);> >puts>(str1);> >// Copies contents of str2 to str1> >memcpy>(str1, str2,>sizeof>(str2));> >puts>(>' str1 after memcpy '>);> >puts>(str1);> >return> 0;> }>

拡張子ファイルjava
>

>

出力

str1 before memcpy Geeks str1 after memcpy Quiz>

memcpy() に関する重要なポイント

  1. memcpy() はオーバーフローまたは をチェックしません。
  2. memcpy() は、送信元アドレスと宛先アドレスが重複している場合に未定義の動作を引き起こします。

注記 : memmove() は、オーバーラップを適切に処理する別のライブラリ関数です。

関連記事

  • 独自の memcpy() と memmove() を作成します