C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Structures in C

Demonstrate Memory Sharing in Union

C Program: Demonstrate Memory Sharing in Union

C

#include <stdio.h>

#include <string.h>

 

// Define a union

union Data {

    int i;

    float f;

    char str[20];

};

 

int main() {

    union Data data;

 

    printf("Memory size occupied by union: %lu bytes\n", sizeof(data));

 

    // Assign integer value

    data.i = 10;

    printf("\nAfter assigning integer:\n");

    printf("data.i = %d\n", data.i);

 

    // Assign float value

    data.f = 22.5;

    printf("\nAfter assigning float:\n");

    printf("data.i = %d\n", data.i); // overwritten

    printf("data.f = %.2f\n", data.f);

 

    // Assign string value

    strcpy(data.str, "C Programming");

    printf("\nAfter assigning string:\n");

    printf("data.i = %d\n", data.i); // overwritten

    printf("data.f = %.2f\n", data.f);

    printf("data.str = %s\n", data.str);

 

    return 0;

}

Output

 
OUTPUT :
Memory size occupied by union: 20 bytes

After assigning integer:
data.i = 10

After assigning float:
data.i = 1103626240
data.f = 22.50

After assigning string:
data.i = 1634497389
data.f = 8.722556
data.str = C Programming

Explanation

Concept

Description

union Data

Defines a memory block shared among an int, float, and char array.

Memory Sharing

Only one member can hold a value at a time — the last assigned one overwrites the others.

sizeof(data)

Returns the size equal to the largest member (here, 20 bytes due to char str[20]).