c의 struct에 대입연산이 안됩니다.
글쓴이: mirday / 작성시간: 화, 2008/07/08 - 11:22오전
struct 구조
typedef struct st_aa {
int bnAmnt;
long long blAmnt;
int bnAmnt1;
.
.
.
} aa
위와같은 struct구조체의 총바이트는 8000 바이트입니다.
어떤값을 가지온다음에 아래와 같이 대입연산자를 쓰면...
aa->blAmnt = getLongAmnt( 10000);
: printf(" blAmnt %lld, %lld \n", aa->blAmnt , getLongAmnt( 10000));
: aa->blAmnt는 0으로 출력이 되고, getLongAmnt는 10000이라 출력이 됩니다.
구조체안에 항목이 많은데, 중간쯤에 한 항목과 위와같이 대입이 안됩니다.
무슨 이유가 있는것인지요?
그리고 struct 사이즈는 메모리가 허용하는한 제한이 없는것인지요??
시스템은 유닉스(SUN) 64비트 머쉰입니다.
Forums:
aa는 변수가 아니지
aa는 변수가 아니지 않나요?
-------------------
나는 Copy&Paster 이다. 나의 화려한 기술 조합에 모두들 나를 두려워 한다. 나도 코드 Maker 이고 싶다.
-------------------
나는 Copy&Paster 이다. 나의 화려한 기술 조합에 모두들 나를 두려워 한다. 나도 코드 Maker 이고 싶다.
typedef struct st_aa {int
혹은
時日也放聲大哭
時日也放聲大哭
약간의 부연 설명을
약간의 부연 설명을 덧붙입니다.
구조체 선언부를 보시면 aa는 구조체 타입일 뿐 구조체 포인터 변수는 아니란 걸 알 수 있습니다.
typedef를 사용하여 struct st_aa라는 구조체를 aa라는 타입명으로 사용하겠다라는 것입니다.
고로 -> 지시자를 aa에 적용 시킬수는 없는 것이죠. -> 지시자를 사용하여 구조체의 각 멤버를 가르키려면,`바로 윗 분이 하신 것처럼 aa *paa = NULL; 명령문으로 paa라는 구조체 포인터 변수를 생성한 다음 paa에 동적 메모리를 할당하여 사용하면 됩니다.
아니면 아래의 예제처럼 aa taa; 로 taa라는 구조체 변수를 사용하는 방법과 taa의 주소를 paa에 대입하여 사용하는 방법이 있겠죠.
- Why don't you come in weird? I hope you come together.
--
I think to myself...what a emerging world.
댓글 달기