Предположим, что есть структураПолучить указатель на объект от указателя на какой-то член
struct Thing {
int a;
bool b;
};
и я получаю указатель на член b
этой структуры, скажем, в качестве параметра некоторой функции:
void some_function (bool * ptr) {
Thing * thing = /* ?? */;
}
Как получить указатель на содержащий объект? Самое главное: не нарушая какое-либо правило в стандарте, то есть я хочу, чтобы стандартное поведение определялось, а не неопределено, и не было определено поведение реализации.
Как сторона примечание: Я знаю, что это обходит тип безопасности.
См. 'Offsetof'. – deviantfan
сложно сместить указатель 'Thing' с адреса' bool'. Почему бы вам не передать адрес Thing/указатель на вашу функцию? – Stefan
@Stefan Предполагается, что это часть распределителя: у него есть узлы с бухгалтерией и данными, я раздаю указатель на данные о распределении и верну его обратно на освобождение. –