C | Structure & Union | Question 7
union test { int x; char arr[8]; int y; }; int main() { printf ( "%d" , sizeof ( union test)); return 0; } |
Predict the output of above program. Assume that the size of an integer is 4 bytes and size of character is 1 byte. Also assume that there is no alignment needed.
(A) 12
(B) 16
(C) 8
(D) Compiler Error
Answer: (C)
Explanation: When we declare a union, memory allocated for a union variable of the type is equal to memory needed for the largest member of it, and all members share this same memory space. In above example, “char arr[8]” is the largest member. Therefore size of union test is 8 bytes.
Quiz of this Question
Please Login to comment...