Мне было интересно:
Если у меня есть определения структуры, например, вот так:
struct Base {
int foo;
};
struct Derived {
int foo; // int foo is common for both definitions
char *bar;
};
Можно ли сделать что-то вроде этого?
void foobar(void *ptr) {
((struct Base *)ptr)->foo = 1;
}
struct Derived s;
foobar(&s);
е. г. поместите указатель void на Base *
, чтобы получить доступ к его foo
, когда его тип на самом деле Derived *
?