게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
살려주세요;;;(C, 구조체관련 질문)
게시물ID : programmer_1986짧은주소 복사하기
작성자 : 밤나무꽃향기
추천 : 0
조회수 : 456회
댓글수 : 10개
등록시간 : 2014/03/20 15:13:24
구조체 안에서 변수를 선언하게 되면
순차적으로 메모리 주소가 할당 된다고 알고 있고
또 계속 그렇게 써 왔는데 오늘 멘붕이 왔네요..
 
아래 예제를 보면
 
 
typedef struct{
  U16 a;             // 2000
  U16 b;             // 2002
  U16 c;             // 2004
  U32 d;             // 2006
  U16 e;             // 2010
  U16 f;              // 2012
 
}Sys;
 
sizeof(Sys) ==  14
 
이런식의 순차적으로 메모리 주소가 할당 되어야 정상 아닌가요?
근데 이상하게 특정 라인에서 코딩을 하면
 
typedef struct{
  U16 a;             // 2000
  U16 b;             // 2002
  U16 c;             // 2004
  U32 d;             // 2008
  U16 e;             // 2012
  U16 f;              // 2014
 
}Sys;
 
sizeof(Sys) == 18
이런식으로 결과가 나오네요...
 
c를 sizeof 하면 2가 나옴에도 불구하고
d의 주소가 4칸뒤에 나오는지..
 
값들이 주루룩 밀려 버리네요...
미치겠습니다..
 
해결방법 없을까요 ㅠㅠ
 
이런식으로 할당이 디
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호