Здравствуйте.
У меня есть, к примеру:
struct A { float w; int x; } ;
struct B { char y; A z; } ;
int B::* p;
B b;
Как мне теперь в переменную p запихнуть адрес поля B::z.x?
Так, чтобы b.*p было эквивалентно b.z.x
Если, по логике вещей, указатель на член -- это просто смещение от начала структуры, то это должно быть возможно, разве нет?