Invalid conversion from ‘void*’ to ‘unsigned char*’
问题 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? 回答1: 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*