C Structure vs Union

C Structure vs Union – Key Differences

In C programming, structures and unions are user-defined data types that group different variables under one name. While they seem similar, they differ in how they handle memory and store values.

๐Ÿ“ฆ Structure

A structure allocates separate memory for each member. All members can hold values independently.

๐Ÿ“ Example: Structure

#include <stdio.h>

struct MyStruct {
    int i;
    float f;
    char ch;
};

int main() {
    struct MyStruct s = {10, 3.14, 'A'};

    printf("Integer: %d\n", s.i);
    printf("Float: %.2f\n", s.f);
    printf("Character: %c\n", s.ch);

    return 0;
}
  

Try It Now

๐Ÿ’ก Union

A union allocates one shared memory for all members. Only one member can contain a valid value at any time, as all members overlap in memory.

๐Ÿ“ Example: Union

#include <stdio.h>

union MyUnion {
    int i;
    float f;
    char ch;
};

int main() {
    union MyUnion u;

    u.i = 10;
    printf("Integer: %d\n", u.i);

    u.f = 3.14;
    printf("Float: %.2f\n", u.f);

    u.ch = 'A';
    printf("Character: %c\n", u.ch);

    // Notice how previous values get overwritten
    printf("After char, integer: %d\n", u.i);

    return 0;
}
  

Try It Now

๐Ÿ” Structure vs Union Comparison

Feature Structure Union
Memory Allocation Each member has separate memory All members share the same memory
Access All members can be accessed at once Only one member can be used at a time
Size Sum of sizes of all members Size of the largest member
Use Case General-purpose grouping of variables Memory-efficient representation

๐ŸŽฏ Practice Tip

Use structures when you need all data available at once. Use unions when you need to save memory and only one variable is active at a time. Try modifying the examples to see memory behavior in action!