memcpy関数は、C言語でメモリブロックをコピーするための標準ライブラリ関数です。この関数は、あるメモリ領域から別のメモリ領域へ指定されたバイト数のデータをコピーします。
memcpy関数の使い方
使用する際には、#include <string.h>をインクルードし、以下の形式で使用します。
void *memcpy(void *dest, const void *src, size_t n);
引数には、コピー先のメモリへのポインタdest、コピー元のメモリへのポインタsrc、およびコピーするバイト数nを指定します。戻り値はコピー先のポインタです。
注意点として、コピー元とコピー先のメモリ領域が重なっている場合、動作は未定義です。この場合は、代わりにmemmove関数を使用する必要があります。
例えば、次のように配列のデータをコピーすることができます。
char src[] = "Hello, World!";
char dest[20];
memcpy(dest, src, strlen(src) + 1);
このコードは、srcの内容をdestにコピーし、strlen(src) + 1を使ってヌル文字も含めたサイズを指定しています。
memcpyは効率的にメモリを操作できる便利な関数ですが、使用時にはメモリ領域の重複やバイト数の指定に注意し、安全に利用することが重要です。