Union의 재사용과 관련한 질문
안녕하세요 union 관련하여 질문드립니다.

예제 1에서 num.floating = 3.14 재사용하면서 덮어쓰기처럼 되었기에 그 밑의 num.integer가 쓰레기값이 되었다고 설명주셔서 이해하였습니다.

그런데 예제 2에서 data.integer를 통해 재사용하였는데 그 밑의 sizeof(data.character)값이 1 bytes로 출력될 수 있는지 궁금합니다.
저는 data.integer이 값을 할당한 직후기 때문에 sizeof(data.character)도 4 bytes로 출력될 것으로 예상했습니다.
감사합니다.
답변 1
1
질문이 너무 훌륭하십니다.
제가 설명을 올린대로, 공용체(union)에서는 모든 멤버가 같은 메모리 공간을 공유합니다. 그래서 data.integer = 65;로 값을 변경하면 data.character와 data.integer가 가리키는 메모리 공간이 같기 때문에 data.character의 값도 변경됩니다.
그런데 sizeof 연산자는 할당된 값과 상관없이 변수의 자료형 크기를 알려줍니다. 그래서 char 자료형의 크기는 항상 1byte로 리턴됩니다. 값이나 메모리 공유 여부와 상관없이 "자료형" 기준입니다.
모의고사 1회 계산문제 2개 맞았는데
0
10
1
업캐스팅 문제 예시 4번 부모 호출
0
18
1
모의고사 자료 해설이 너무 불친절하네요.
0
44
2
부모의 생성자 출력 관련
0
20
2
이론파트 재탕문제
0
23
0
누락코드
0
22
1
다차원 배열 포인터 질문있습니다
0
39
3
이론 파트 재탕
0
37
1
모의고사 5회
0
34
1
12분 10초 func(values, 0, 1)을 넣을 때
0
38
1
모의고사 1회 4번 문제와 관련한 질문이 있습니다.
0
41
2
재탕문제
0
57
1
재탕문제
0
38
0
파이썬 추가 코드
0
53
1
배열 포인터 출력 표시
0
54
2
포인터 증감 또는 값 증감
0
54
2
배열 포인터 함수 관련
0
52
2
실기 이론 통합 요약본 버전
0
66
2
업캐스팅 3번 문제 예시
0
63
2
push pop 설명 되어있는 강의가 몇강인가요?
0
53
1
모의고사 파일오류
1
84
3
모의고사 다운
0
58
1
업캐스팅 원칙
0
71
2
6분46초
0
61
2





