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