Copy functions are conventionally void *(*)(const void). This will make the caller have to define ad-hoc copy functions every time.