C | Structure & Union | Question 7

filter_none

edit
close

play_arrow

link
brightness_4
code

union test
{
    int x;
    char arr[8];
    int y;
};
  
int main()
{
    printf("%d", sizeof(union test));
    return 0;
}

chevron_right


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

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up