Структуры работают в памяти так же, как в этом случае целое число или некоторый другой базовый тип данных. Ваш массив будет просто разделен sizeof (struct) вместо sizeof (базовый тип данных).
Он по-прежнему начинается с 0 и заканчивается в X - 1. Тип массивов обычно просто определяет две вещи:
Количество байтов на индекс и способ обработки данных.
Изобразите массив размером 3 со структурами, которые содержат 5 байтов данных. Ваш массив будет установлен следующим образом:
-----|-----|-----|????|
s1 |s2 |s3 |????|
То, что она существует, не означает, что наша программа знает, что это такое. 4-й [3] индекс (????) будет индексом за пределами нашего массива. Возможно, однако, вы могли бы получить какое-то значимое значение здесь, но очень маловероятно. В большинстве случаев это будет либо мусор, либо ошибка.