Игнорирование проблем заполнения/выравнивания и задание следующей структуры, лучший способ получить и установить значение member_b без использования имени участника.
struct mystruct {
int member_a;
int member_b;
}
struct mystruct *s = malloc(sizeof(struct mystruct));
Поставьте другой путь; Как бы вы выразили следующее в терминах указателей/смещений:
s->member_b = 3;
printf("%i",s->member_b);
Я предполагаю, что
- вычислить смещение, найдя sizeof member_a (
int
) - отбрасывает структуру в один тип указателя слова (
char
?) - создать указатель
int
и установить адрес (на*charpointer + offset
?) - используйте указатель
int
для установки содержимого памяти
но я немного запутался в том, что вы выбрали тип char, или если что-то вроде memset
более подходящее, или, вообще говоря, я прихожу к этому совершенно неправильно.
Приветствия за любую помощь