I am trying to wrap my head about a void* and what is appropriate use of it and if there is any potentially abusive use I should know about. (Meaning something
void* is a memory address without a type. It's useful when the code around it has some other way of knowing what type it is working with (for example, memchr needs to have the size of the memory area passed in addition to the address).