А есть ли какие-нибудь отличия в поведении C и C++ при кастовании char* в void* и обратно?
А то я тут пишу плюсявый плагин к сявой софтине: из неё вызывается мой плюсявый callback f():
extern "C" void f() {
static const char msg[] = "xxx";
g(msg, sizeof(msg) - 1);
}
void g(const char* data, size_t size) {
сявая_структура x;
x.data = data;
x.size = size;
сявый_вызов(x);
}
Если я уберу const с объявления msg внутри f(), и объявлю параметр data функции g() как const void*, а внутри напишу x.data = (char*)data, то всё сегфолтится. Почему?





