How to Initialize Array of Structs in C? (original) (raw)

Last Updated : 28 Feb, 2024

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 `

// 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.