We accept NULL pointers if the size is zero, but the C standard library functions memcpy and memmove requires valid pointers, even if the size is zero.