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
Last Updated :
28 Jun, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...