Conversão inválida de "void *" para "char não assinado"
Eu tenho o seguinte código;
void* buffer = operator new(100);
unsigned char* etherhead = buffer;
Estou recebendo o seguinte erro para essa linha ao tentar compilar;
error: invalid conversion from ‘void*’ to ‘unsigned char*’
Por que eu recebo esse erro, achei que um vazio era "sem tipo", então ele pode apontar para qualquer coisa, ou qualquer coisa pode apontar para ele?