Array Of Structures in C
The C programming language allows us to store multiple elements of the same type in arrays. We can use strings to store multiple elements of a character data type. Still, there is a programming need to store multiple items of different data types, for example, when collecting data from students whose names are of the character data type. Next is the roll number of the numeric data type. Structures are used to store multiple elements of different data types.
Structure
The structure is a user-defined data type. With the help of structures, we can define a data type that holds more than one element of different types. The structure can contain "n" elements. This means any number of elements. Now let's look at the syntax.
Syntax
struct structurename
{
datatype ele1;
datatype ele2;
.
.
.
.
};
We should always start with the keyword "struct" and add the struct name that the programmer can want. Next, we need to open the square bracket declaration. Finally, close the brackets after declaring all the elements with the data type. Adding a semicolon at the end is important.
Syntax Example
struct Customer
{
int customerid;
char name[20];
};
main()
{
int a;
Struct Customer c[25];
}
When we declare a variable in the main function, we know that we need to add the data type and then the variable name. For structures, the data type name is "struct structure name". This means that we are a "struct Customer" here. Next, we need to add the variable name "c" here, and memory will be allocated for the variable. Structure variables always contain a base address. This refers only to the data type, but there is no pointer here since it is an internal pointer value. A structural variable called "c" is allocated 24 bytes of memory [20]. Each character occupies 1 byte of memory. Characters mean 20 bytes for 20 characters, and integer variables are 4 bytes on 64-bit systems for 24 bytes. We have saved the information so far. Let's move to the access part.
Accessing Structure
We can access the structure simply by entering the dot ".". Operators such as "c.customerid" and "c.name". Firstly, we need to understand how to declare the structure's size.
Structure size
We can use the keyword "size" to find the size and sizeof (variable name). We can also use sizeof (struct strcutname). Check out the examples below to get a quick idea.

Example in C Programming
#include<stdio.h>
struct Customer
{
int customerid;
char name[20];
};
void main()
{
struct Customer c;
printf("size of Customer structure is %lu \n",sizeof(c));
printf("size of Customer is %lu ",sizeof(struct Customer));
}
Output

Array
Arrays are simply a collection of multiple elements, but they must be of the same data type. An array of C can be defined as a way to combine multiple entities of similar type into a larger group. These entities or elements can be user-defined data types such as ints, floats, chars, double data types, or structures. However, all elements must have the same data type to be stored together in a single array. The items are organized from left to right, with the leftmost index being 0 and the rightmost index being (n-1).
Collection of characters, numbers are some examples of Arrays.
Array Of Structures
An array of structures is a simple array where each element is a structure of the same type.
struct Customer
{
int customerid;
char name[20];
};
struct student s1,s2
This is the normal format where we declare variables. If we want to add Sixty members, then declare 60 variables like s1,s2,s3, and many, finally, s60. Declaring like this is time taking when a huge number of variables are there, and the program length will increase, making the code more complicated.
So, it is better to take an array of these elements. They represent 60 structure objects, which is the main reason for using the Array of Structures.
Applications Of Array Of Structures
When we need to store many people's data where the required details are the same for all, it means when we collect 60 members' data, we need customer id and names. The values may differ from customer to customer, but the required details titles are the same.
Memory Allocation
Each array element is a structure object, and each object has all the details. A base address is assigned to the array. The allocation of 3 elements is like this. To access the customer id of the second customer, we need to say “c[2].customerid” .If we want to access the name, then s[2].name.

Example in C
#include <stdio.h>
struct Customer
{
int customerid;
char name[20];
}s[3];
int main()
{
int i;
for(i;i<3;i++)
{
printf("Enter the values of id and name \n");
scanf("%d \n %s",&s[i].customerid,&s[i].name);
}
printf("The entered details of all theree customers: \n");
for(int i;i<3;i++)
{
printf("\n %d \n %s \n",s[i].customerid,s[i].name);
}
return 0;
}
Output

To display all details, we need to use for loop. Finally, we added 3 customers data and print them in the output.