>> Delete Reply from No. 43453 article
No. RE: [질문]다음구조체의 사이즈는?

등록 2002-02-28 17:32:00 By localhost     조회 2
이름 litdemon    

		메모리를 할당 할때 문제입니다.
구조체를 선언하여 할당 할때는 연속되게 할당을 하는데
할당하는 기본 단위가 4바이트 입니다..
 님의 struct 에서
 struct
{
  int aaaa;
  char bbbb;
  char cccc;
}
하여도 마찬가지로 8바이트 입니다
하지만
struct
{
   char bbbb;
   int aaaa;
   char cccc;
}
이렇게 선언 할경우 12바이트가 잡힙니다
 왜 그런지 볼까요?
char bbb를 할당하기위해 기본 단위 4바이트를 할당
다음 int aaa를 할당 하려 했더니 4바이트 경계선을 넘는 군요
해서 다음 4바이트에 할당..
char ccc를 할당하기 위해 다시 기본단위 4바이트 추가..
 때문에 12바이트가 위의 구조체를 할당하기 위해 소모 됩니다...
  코딩할때 몰아서 하세요 ^^ 구조체 쓸때는 특히 더요 ^^
함수에서 선언되는 변수들에도 적용 되는 지는 모르겠네요..
 : struct
: {
: int aaaa;
: char bbbb;
: }
:
: 이 구조체의 포인터를 크기를 알고싶어서
: include<stdio.h>
:
: typedef struct {
:         int bbb;
:         char ccc;
: }aaa;
:
: int main(void)
: {
:         aaa ttt;
:         printf("size is %d",sizeof(aaa));
:         return 0;
: }
:
: 이렇게 짜봤습니다. 그런데 원래 저위의 구조체는 5 byte 가 나와야 정상아닌가요?
: 왜 8byte 가 나오는걸까요?
: 궁금해서 물어봅니다.그럼--지금까지 허접 리눅서였슴다.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved