Skip to main content

Array of unions

We can create array of unions similar to creating array of any primitive data type. Below is the general form of declaration for array of union.
union  <union_name>  <array_name>[size];

Consider the following example,
union values {
int int_val;
float float_val;
};
union values arr[2];

Here, arr is an array of union which can hold two union elements.

Array of union initialization:
Let us see how to initialize array of union.

union values arr[2] = {{1}, {2}};
The above statement initializes first union member of both the array elements.

union values arr[2] = {{.float_val = 1.1}, {.float_val = 2.2}};
The above statement initialized second union member of both the array elements.

How to access union members?
Now, let us see how to access union members in the array element.

arr[0].float_val = 2.2;
Dot operator(access operator) is used to access union array element's data member.

Note:
In union, only one data member will be active at a time.
Size of a union is the size of its biggest data(union) member.

Array of unions example in C


#include <stdio.h>
union values {
int integer_val; // union member
float float_val; // union member
};

int main() {
/* array of unions initialization */
union values arr1[2] = {{10}, {20}};
union values arr2[2] = {{.float_val = 10.01},
{.float_val = 20.02}};

/* printing the array contents */
printf("arr1[0].integer_val: %d\n", arr1[0].integer_val);
printf("arr1[1].integer_val: %d\n", arr1[1].integer_val);

printf("arr2[0].float_val: %f\n", arr2[0].float_val);
printf("arr2[1].float_val: %f\n", arr2[1].float_val);

/* printing the size of the union */
printf("Sizeof(union values): %d\n", sizeof(union values));
return 0;
}

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  arr1[0].integer_val: 10
  arr1[1].integer_val: 20
  arr2[0].float_val: 10.010000
  arr2[1].float_val: 20.020000
  Sizeof(union values): 4




Comments

Popular posts from this blog

restorecrtmode example in c

Header file:     graphics.h Synopsis:        void restorecrtmode();       Description:       restorecrtmode() restores screen mode to text mode. restorecrtmode function in c graphics   #include <graphics.h>   #include <stdlib.h>   #include <stdio.h>   #include <conio.h>   int main(void) {         /* request auto detection */         int gd = DETECT, gmode, err;         int midx, midy;         /* initialize graphics and local variables */         initgraph(&gd, &gmode, "C:/TURBOC3/BGI");         /* read result of initialization */         err = graphresult();         if (err != grOk) {                 /* an error occurred */               ...

How to install JDK and setting environment variables for java

In this tutorial, we are going to see the following. How to install JDK How to run java program without setting java path How to set temporary java path in windows How to set permanent java path in windows How to install JDK? Check whether JDK is installed on your PC.  If it is not installed, please go to the below link and download JDK under Java SE(Java Standard Edition) in oracle website . Install the downloaded JDK in your PC. Once JDK is installed, you can run your java program using any method shown below. Having your java source code under jdk/bin, compile the source code and run the program from same directory Setting temporary path for java, compiling the source code and running the program from any location using command prompt Updating the java path in system or user variable(in system properties), compiling the source code and running the program anywhere using command prompt Let us see how to run java program without setting environmental variables.  Once java is ...

Save image in Microsoft Paint without white background

Here, we are going to see how to save image in mspaint without white background 1. Create your own drawing or painting 2. Crop the needed portion of your drawing or painting or image. Here, I am going to crop the porting inside the red box. Now, we have cropped the portion that needs to be saved as an image. 5. Clear the screen and paste the image which we cropped earlier. 6. Decrease the screen size by 50% 7. Now, adjust your screen to fit to your image size. 8. Save the image to desired file format(jpeg, png, bmp etc) 9. Go to the saved location and open the file.  Below is the output image of mine Hope you liked this article!!  For any suggestions, please comment below.