[질문]스트럭쳐의 주소값에 대해서..
먼저 아래의 소스를 봐주세염..
#include
main()
{
struct TTT{
char hhh[2] ;
double iii ;
char kkk[2] ;
double jjj ;
char ppp[2] ;
} ;
struct TTT ttt;
printf("%d\n", sizeof(ttt)) ;
printf("hhh %p\n", &(ttt.hhh)) ;
printf("iii %p\n", &(ttt.iii)) ;
printf("kkk %p\n", &(ttt.kkk)) ;
printf("jjj %p\n", &(ttt.jjj)) ;
printf("ppp %p\n", &(ttt.ppp)) ;
}
실행하면 아래와 같습니다..
40
hhh 7bff11c0
iii 7bff11c8
kkk 7bff11d0
jjj 7bff11d8
ppp 7bff11e0
HP유닉스고,, char는 1바이트, int는 4바이트, double은 8바이트로
알고 있는데,, 위에서 보면 문자열을 2자리로 잡았는데
주소값 할당된건 8바이트입니다..
그래서 문자열의 길이를 변화시켜 봤더니,, 주소값 할당되는게
8자리 단위로 할당되더군요..
다시 말해 문자열이 1부터 8자리이면 8바이트 할당
8자리넘어가고 16자리까지는 16바이트 할당.. 이런 식으로요..
원래 스트럭쳐내에 멤버들 주소값 할당할땐 저런 식으로 되는건가요?
이유를 설명해주시면 감사하겠습니다...
그럼 미리 감사드려용~~ 행복하세여~
Re: [질문]스트럭쳐의 주소값에 대해서..
http//kldp.org/script/bbs/read.php?table=qa2&no=1475&o[sc]=a&o[ss]=align&o[st]=a&o[at]=s&o[sct]=s&o[stt]=s
중복 질문이시네요..
검색을 활용하세요.
Re^2: 감사함다..
으음.. 중복질문이었군여.. 죄송..
암튼 답글 링크 걸어주셔서 큰 도움 됐슴다..
감사합니다~~
댓글 달기