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
unsigned char* etherhead = (unsigned char*)buffer;
(although you could use a static_cast
also)
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With