Open In App

How to Initialize Array of Structs in C?

In C, arrays are data structures that store the data in contiguous memory locations. While structs are used to create user-defined data types. In this article, we will learn how to initialize an array of structs in C.

Initializing Array of Structures in C

We can initialize the array of structures using list initialization where each of the nested lists corresponds to the members of a single structure element.



Syntax to Initialize Array of Structs in C

struct Str str[] = {
    {structure1_value1, structure1_value2},
    {structure2_value1, structure2_value2},
    {structure3_value1, structure3_value2}
};

C Program to Initialize an Array of Structs

The below example demonstrates how we can initialize an array of structures in C.




// C Program to Initialize an Array of Structs
#include <stdio.h>
  
// Define the struct
struct Student {
    char name[50];
    int roll;
    float marks;
};
  
int main()
{
    // Initialize an array of structs
    struct Student students[] = { { "John", 1, 85.5 },
                                  { "Emma", 2, 90.6 },
                                  { "Harry", 3, 92.7 } };
  
    // Print the array of structs
    printf("Students: \n");
    for (int i = 0; i < 3; i++) {
        printf("Name: %s, Roll: %d, Marks: %.2f\n",
               students[i].name, students[i].roll,
               students[i].marks);
    }
  
    return 0;
}

Output

Students: 
Name: John, Roll: 1, Marks: 85.50
Name: Emma, Roll: 2, Marks: 90.60
Name: Harry, Roll: 3, Marks: 92.70

Time Complexity: O(N), where N is the size of the array.
Space Complexity: O(1) as no extra space for utilization is required.

Article Tags :