C Tutorial

C Tutorial C Language Environment Setup Execution flow of C program C printf and Scanf C Data type C Token Variable in C Operators in C Comments in C Escape Sequence in C C – Storage Classes C Decision control statement Loop Statement in C Break, continue and goto statement in C Type Casting in C Function in C Recursion in C String in C C Array Pointer in C Dynamic memory allocation C –Structure Nested Structure in C Union in C File Handling in C C pre-processor Static Function In C Sizeof In C Selection Sort In C Scope Of Variables In C Runtime Vs Compile Time In C Random Access Lseek In C Queue Implementation In C Pseudo Code In C Prototype In C Pointer To Pointer In C Pointer Arithmetic In C Passing Array To Function In C Null Character In C Merge Sort In C Macros In C Library Functions In C Memory Leak In C Int In C Goto And Labels In C Fibonacci Series In C Fflush In C Derived Data Types In C Data Types In C Const Vs Volatile In C Character Set In C Character Class Tests In C Calloc In C C Pointers Arrays In C Include In C Clrscr In C C Vs Java String Literals In C Types Of Pointers In C Variables In C Volatile In C Why C Is A Middle Level Language Infix To Postfix Program In C Ceil function in C LCM of two numbers in C Quick sort in C Static in C function pointer as argument in C Top Array Keywords in C Add two numbers using the function in C Armstrong program in C using function Array, Declaring Arrays and Array Initialization Limitations of Inline Function in C Merge and Merge sort with example in C Do-While Loop in C For Loop in C While-Loop in C Difference between while and do-while loop in C Array Of Structures in C Data Structures And Algorithms in C Types Of Structures In C How to Avoid Structure Padding in C Use of Structure in C Do WHILE LOOP in C Programming Examples For Loop in C Programming Examples Entry Control Loop in C Exit control loop in C Infinite loop in C Nested loop in C

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. 

Array Of Structures

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 Of Structures

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.

Array Of Structures

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

Array Of Structures

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



ADVERTISEMENT
ADVERTISEMENT