0
충돌 구조체 멤버의 오프셋 (offset)하기 구조체 회원 :는 지금까지 매크로는 다음과 같이 정의한다 "offsetof를"내가 아는 한
typedef struct{
char a;
int b;
int c;
}example_struct;
int main(int argc, char *argv[])
{
example_struct *p = 0;
printf("%p\n", &(p->a)); --> 00000000
printf("%p\n", &(p->b)); --> 00000004
printf("%p\n", &(p->c)); --> 00000008
printf("%p\n", &(p->a)); --> 0
printf("%p\n", &(p->b)); --> 4
printf("%p\n", &(p->c)); --> 8
cout << &(p->a); --> this line cause crash ???
cout << &(p->b); --> 00000004
cout << &(p->c); --> 00000008
cout << (unsigned int)&(p->a); --> 0
cout << (unsigned int)&(p->b); --> 4
cout << (unsigned int)&(p->c); --> 8
return 0;
}
내 질문은 :
- 타입 캐스트가 크래시를 유발합니까? 첫 번째 구성원의 오프셋을 사용할 수는 있지만 printf는 왜 오프셋을 사용할 수 있습니까?
- 왜 우리는 타입 캐스팅해야합니까? 그게 끝나야합니까?
모든 의견은 진정으로 감사합니다 :)
한 번에 질문 하나만 시도해보십시오. 이것은 비슷한 솔루션을 찾는 다른 독자에게 도움이됩니다. –
죄송합니다. 처음 질문을 게시하는 경우 : D –