#include <stdio.h>
#include <string.h>
#include <malloc.h>
struct Student {
char name[100];
int id;
char major[50];
char address[200];
};
int main()
{
struct Student st;
strcpy(st.name, "Chuck");
st.id = 20001;
strcpy(st.major, "Computer Science");
strcpy(st.address, "1st Street");
printf("%d %d %d %d %d\n", sizeof(st), sizeof(st.name),sizeof(st.id), sizeof(st.major), sizeof(st.address));
return 0;
}
出力は 356 100 4 50 200 です。なぜ sizeof(st) は 354 ではなく 356 なのですか? そして、intなしでこれを試してみたところ、出力は350 100 50 200だったので、問題は整数にあると思います。