소프트웨어/C/C++
C/C++] 구조체의 크기
cs만두
2013. 8. 10. 01:29
구조체의 크기에 대하여
struct _Person{ int age; char name; int phone; };
갑자기 궁금해서 타이핑을 해보았다.
막연하게 int 4byte, char 1byte, int 4byte라서 9byte일것같지만..
sizeof(_Person)을 해보면 12가 나온다.
왜냐하면 구조체의경우 가장 사이즈가 큰 놈한테 맞춰서 메모리가 턱턱 할당되는데 이경우
|
|
|
|
|
|
|
|
|
|
|
|
퍼렁: int age
분홍: char name
녹색: int phone
으로 할당되서 그렇다.
c교제에서 옛날에 본건데 잊고있었드아
위에서는 int char int로 선언을 해서 12byte가 나왔다.
그러면 int char char int는?
|
|
|
|
|
|
|
|
|
|
|
|
역시나 12byte. int char int로는 중간에 3byte의 빈자리가 있어서 i c c i 를하면 3바이트로 슉~들어간다.
만약 int char int char라면?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
총 16byte가 든다.
정리: 구조체 사용시 변수 할당 순서를 효율적으로 합세