An array of structs in C is a collection of struct variables that are stored in contiguous memory locations. This means that the members of each struct variable are stored next to each other in memory.
To declare an array of structs, you use the struct
keyword followed by the name of the struct and the array variable name, with square brackets ([]). For example, the following code declares an array of 10 Person
structs:
struct Person people[10];
The people
array now stores 10 Person
struct variables. Each struct variable is stored in a contiguous memory location.
Why use arrays of structs in C?
There are a few reasons why you might want to use arrays of structs in C:
- To store a large amount of data. Arrays of structs can be used to store a large amount of data in a single variable. This can be useful if you are working with a large dataset.
- To improve performance. Arrays of structs can improve the performance of your code by allowing you to access the members of the structs using a single index. This can be especially useful if you are working with a large dataset.
- To simplify code. Arrays of structs can simplify your code by allowing you to store related data together. This can make your code easier to read and maintain.
Examples of arrays of structs in C
Here are some examples of how arrays of structs can be used in C programs:
- Storing information about a group of people. Arrays of structs can be used to store information about a group of people. For example, we could store the name, age, and address of each person in a struct. We could then store the structs in an array to easily access the information about each person.
- Storing the game state in a game. In a game, arrays of structs can be used to store the game state. For example, we could store the player’s health, score, and position on the map in a struct. We could then store the structs in an array to easily access the game state.
- Storing the configuration of a device. In a device driver, arrays of structs can be used to store the configuration of the device. For example, we could store the device’s address, IRQ, and memory map in a struct. We could then store the structs in an array to easily access the configuration of the device.
![](http://undercontrolrt.com/wp-content/uploads/2023/07/313183081_165857249461946_1420530847835324683_n.png)