整数型の2つのメンバーを持つ構造体について考えてみます。両方のメンバーを住所で取得したい。最初のものは正常に取得できますが、2番目のものでは間違った値を取得しています。それがゴミの価値だと思います。これが私のコードです:
#include <stdio.h>
typedef struct { int a; int b; } foo_t;
int main(int argc, char **argv)
{
foo_t f;
f.a = 2;
f.b = 4;
int a = ((int)(*(int*) &f));
int b = ((int)(*(((int*)(&f + sizeof(int))))));
printf("%d ..%d\n", a, b);
return 0;
}
私が得ている:
2..1
誰かが私がどこで間違っているのか説明できますか?