【C言語入門】memcpy関数の使い方と注意点

プログラミング言語の辞書

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は効率的にメモリを操作できる便利な関数ですが、使用時にはメモリ領域の重複やバイト数の指定に注意し、安全に利用することが重要です。