According to man 3 memccpy
the memccpy
function is defined as follows:
SYNOPSIS
#include <string.h> void *memccpy(void *dest, const void *src, int c, size_t n);
DESCRIPTION
The
memccpy()
function copies no more thann
bytes from memory areasrc
to memory areadest
, stopping when the characterc
is found.If the memory areas overlap, the results are undefined.
What confuses me is that memccpy
copies n
bytes and stops if character c
is found. However, the function takes int c
as an argument. So what happens if I call memccpy
with the following value:
memccpy(&x, &y, 0xffffff76, 100);
Here the value to check is too big for char
. Should this case work?