memcpy

memcpyは、指定の範囲のメモリ領域を、指定の範囲にコピーする。

Man page of MEMCPY
C言語関数辞典 - memcpy

strcpyは、NULL文字('\0')で終端されていれば、その部分もコピーするが、memcpyは第3引数に指定した文字数分のコピーしかしない。

buf1とbuf2をすべて'A'で埋める。
buf1はstrcpyで"ABC"を、buf2はmemcpyで"ABC"をコピーする。

$ vi memcpy.c
$ gcc memcpy.c -o memcpy
$ ./memcpy
buf1 = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
buf2 = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
buf1 = ABC
buf2 = ABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC
$

buf1は"ABC"でNULL終端されている。
buf2はNULL終端されないので、'A'の並びが残ったままである。

Sample/c/memcpy/memcpy/src/memcpy at master · bg1bgst333/Sample · GitHub