길이가 틀린 여러 구조체를 하나의 변수에 주소를 저장하는 방법이 있나요?
글쓴이: coathanger / 작성시간: 일, 2007/02/11 - 5:25오후
안녕하세요..
아래와 같이 서로 다른 길이를 갖는 구조체 a, b가 있습니다.
struct a
{
int a_a;
};
struct b
{
int b_a;
int b_b;
};
이 구조체들을 하나의 포인터 변수에 주소를 저장 할 수는 없나요?
즉 다시 정리하면...
a, b 구조체의 주소를 p라는 포인터에 저장하고 싶습니다.
p의 타입이 해당 구조체의 타입으로 바껴야 하는데.. 가능한지와 힌트라도 얻고 싶습니다!
물론 각 멤버변수에 접근이 가능해야 합니다.
p = a;
p = b;
p = c;
Forums:
union을 써보시죠?
struct랑 union이랑 섞어서 쓰는 걸 본 것도 같습니다.
감사합니다.
union... 이럴 때 쓰는 군요.. :-)
pointer만을
pointer만을 저장하신다면 void*가 있을테고
union을 쓰신다면 보통은 이런식으로 하는 것 같습니다.
union {
int type;
struct { int type; int data1 } type1;
struct { int type; char* data2 } type2;
} union_data;
if ( union_data.type == type1 )
{
union_data.type1.data1 = .....
}
원하시는 내용이 맞나 모르겠네요..
댓글 달기