I have the following code;
void* buffer = operator new(100);
unsigned char* etherhead = buffer;
I’m getting the following error for that line when trying to compile;
error: invalid conversion from ‘void*’ to ‘unsigned char*’
Why do I get that error, I thought a void was “type-less” so it can point at anything, or anything can point to it?
You need to cast as you can not convert a void* to anything without casting it first.
You would need to do
(although you could use a
static_castalso)To learn more about void pointers, take a look at 6.13 — Void pointers.
The “type-less” state of
void*only exist in C, not C++ with stronger type-safety.