次のように、コードで異常な動作が発生しています
#include<stdio.h>
struct a
{
int x;
char y;
};
int main()
{
struct a str;
str.x=2;
str.y='s';
printf("%d %d %d",sizeof(int),sizeof(char),sizeof(str));
getch();
return 0;
}
このコードでは、次の出力が得られます。
4 1 8
私の知る限り、構造体にはサイズ 4 の整数変数とサイズ 1 の char 変数が含まれているため、構造体のサイズは 5 である必要があります。しかし、構造体のサイズはどうして 8 になるのでしょうか。ビジュアル C++ コンパイラを使用しています。なぜこの振る舞いをするのですか?