# What Is Structure and Union in Data Structure?

//

Heather Bennett

Structure and Union are two important concepts in the field of data structures. They both play a crucial role in organizing and storing data efficiently. In this article, we will dive into what exactly Structure and Union are, their differences, and how they can be used effectively in various scenarios.

## What is Structure?

Structure is a user-defined data type that allows us to combine different types of data under a single name. It is essentially a collection of variables of different types grouped together under one name.

Let’s consider an example to understand it better:

```struct Employee {
int id;
char name[20];
float salary;
};
```

In this example, we have defined a structure called “Employee” which consists of three variables: “id” (integer), “name” (character array), and “salary” (float). The structure allows us to create objects that can hold information about an employee’s ID, name, and salary.

We can create an object of the Employee structure as follows:

```struct Employee emp1;
```

We can then access and manipulate the variables within the structure using the dot operator (.):

```emp1.id = 1;
strcpy(emp1.name, "John");
emp1.salary = 5000.00;
```

The Structure data type is useful when we need to store related data items together. It helps in improving code readability and maintainability.

## What is Union?

Similar to Structure, Union is also a user-defined data type that allows us to store different types of data under a single name. However, there is one key difference between Structure and Union – memory allocation.

In a Structure, memory is allocated for each variable declared within it separately. On the other hand, in a Union, memory is allocated for the largest variable declared within it, and all other variables share the same memory space.

```union Data {
int num;
char character;
float decimal;
};
```

In this example, we have defined a Union called “Data” which consists of three variables: “num” (integer), “character” (character), and “decimal” (float). Since “decimal” occupies the largest memory space among the three variables, the Union will allocate enough memory to accommodate a float.

We can create an object of the Data Union as follows:

```union Data data1;
```

We can then access and manipulate the variables within the Union in a similar way as Structure:

```data1.num = 10;
data1.character = 'A';
data1.decimal = 3.14;
```

The key advantage of using Union is that it helps save memory when we need to store different types of data in a limited space. However, it is important to note that only one variable within a Union can be active at any given time.

## Differences between Structure and Union

Now that we have discussed what Structure and Union are, let’s highlight some key differences between them:

• Memory Allocation: In Structure, memory is allocated separately for each variable declared within it. In Union, memory is allocated based on the largest variable declared within it.
• Data Access: In Structure, we can access and manipulate each variable independently. In Union, only one variable can be active at any given time.

## Conclusion

In conclusion, Structure and Union are powerful concepts in data structures that allow us to organize and store related data efficiently. While Structure enables us to combine different types of data under a single name with separate memory allocation, Union saves memory by sharing the same memory space among variables. Understanding the differences between Structure and Union is crucial for choosing the appropriate data type based on our requirements.

By incorporating Structures and Unions in our code, we can improve code readability, maintainability, and optimize memory usage. Consider using these concepts in your future projects to enhance the efficiency of your data storage and manipulation operations.