As far as I know if you got an array in C and initialize it with a size and a number of items less then the size, the array is initialized with the given items and the rest of the places in the array are initialized with 0 or a value that's most representative to 0.
But what is it like, when you've got an array of type struct something and how can I check if that specific index in the array is an initialized or uninitialized one?

Like:

```c
struct a {
    char x[20];
    int y;
};
typedef struct a a;

a a[5] = {
    {.x = "name", .y = 1},
    {.x = "surname", .y = 2}
};

```

In this case the first two indexes in the array are the given initialized structs but what are the others one and how should I check in a later implementation if the index I am accessing is an initialized or uninitialized one?