0
0
Cprogramming~10 mins

Array of structures - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Array of structures
Define struct type
Declare array of structs
Initialize each struct element
Access or modify elements
Use elements in program
End
This flow shows how you define a structure type, create an array of these structures, initialize each element, and then access or modify them.
Execution Sample
C
struct Point {
  int x;
  int y;
};

struct Point points[3];

points[0].x = 1;
points[0].y = 2;
This code defines a Point structure, creates an array of 3 Points, and sets the x and y values of the first element.
Execution Table
StepActionVariable/ElementValue/StateExplanation
1Define struct Pointstruct PointFields: x (int), y (int)Structure type created with two int fields
2Declare arraypoints[3]Array of 3 Point structs (uninitialized)Memory allocated for 3 Point elements
3Assign points[0].xpoints[0].x1Set x of first element to 1
4Assign points[0].ypoints[0].y2Set y of first element to 2
5Examine points[1].xpoints[1].xuninitializedNo explicit assignment, remains uninitialized (garbage value)
6Examine points[1].ypoints[1].yuninitializedNo explicit assignment, remains uninitialized (garbage value)
7Examine points[2].xpoints[2].xuninitializedNo explicit assignment, remains uninitialized (garbage value)
8Examine points[2].ypoints[2].yuninitializedNo explicit assignment, remains uninitialized (garbage value)
9Access points[0]points[0]{x=1, y=2}First element has assigned values
10Access points[1]points[1]{x=uninitialized, y=uninitialized}Second element remains uninitialized
11Access points[2]points[2]{x=uninitialized, y=uninitialized}Third element remains uninitialized
12End--Program ends
💡 All array elements processed; program ends
Variable Tracker
VariableStartAfter Step 3After Step 4Final
points[0].xuninitialized111
points[0].yuninitializeduninitialized22
points[1].xuninitializeduninitializeduninitializeduninitialized
points[1].yuninitializeduninitializeduninitializeduninitialized
points[2].xuninitializeduninitializeduninitializeduninitialized
points[2].yuninitializeduninitializeduninitializeduninitialized
Key Moments - 3 Insights
Why do points[1] and points[2] remain uninitialized?
Because we did not assign values to points[1] and points[2], their fields remain uninitialized and contain whatever was in memory (garbage values).
How do we access the fields of a struct inside an array?
Use the dot operator with the array index, like points[0].x, to access the x field of the first element.
Can we assign values to struct fields directly after declaring the array?
Yes, each element of the array is a struct, so you can assign to its fields individually using the dot operator.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of points[0].y after step 4?
A1
B2
C0
Duninitialized
💡 Hint
Check the 'Value/State' column for step 4 in the execution_table.
At which step do we assign a value to points[0].x?
AStep 3
BStep 4
CStep 2
DStep 5
💡 Hint
Look for the action 'Assign points[0].x' in the execution_table.
If we want to set points[2].y to 5, which step would that resemble?
AStep 6
BStep 7
CStep 8
DStep 9
💡 Hint
Step 8 is where points[2].y is examined in the execution_table.
Concept Snapshot
Array of structures in C:
- Define a struct type with fields.
- Declare an array of that struct type.
- Access elements with array[index].field.
- Assign or read fields individually.
- Uninitialized elements contain garbage values.
Full Transcript
This visual execution trace shows how to use an array of structures in C. First, we define a struct type named Point with two integer fields x and y. Then, we declare an array named points with 3 elements of type Point. We assign values to the fields of the first element points[0].x and points[0].y. The other elements remain uninitialized and may contain garbage values. We access each element's fields using the dot operator with the array index. This example helps beginners see how arrays of structs are created, initialized, and accessed step-by-step.