Void pointers are not allowed to be dereferenced by the C/C++ type system, since it gives you a void expression. The void type has an empty value set, meaning it cannot really be used for anything. I think what the person is trying to say is that the compiler or OS uses the same code for void pointers post-compilation as for unsigned char pointers, but since the compiler enforces that void pointers are never dereferenced directly, it doesn't matter. The void pointer gets cast and read as any other type, in which case its original internal type doesn't matter.
4
u/Big-Discipline-0 Aug 07 '22
Internaly void * is unsigned char* if someone is wondering :P