구조체의 크기에 대하여
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가 든다.
정리: 구조체 사용시 변수 할당 순서를 효율적으로 합세
'소프트웨어 > C/C++' 카테고리의 다른 글
객체] public, protected, private (0) | 2013.08.11 |
---|---|
c/c++] 클래스 동적할당 (0) | 2013.08.10 |
c++] 동적할당실패시 예외처리 (0) | 2013.08.10 |
c/c++] malloc은 void*를 리턴 (0) | 2013.08.10 |
후위표기법 C언어 (0) | 2012.05.07 |
데이터 검색 (0) | 2012.04.01 |
순위구하기 알고리즘 (0) | 2012.04.01 |