Структуры часто образуют массивы. Чтобы объявить массив структур, вначале необходимо определить структуру, а затем объявить переменную массива этого же типа.
Например, если нужно хранить информацию о 10 студентах, то объявление массива будет следующим
struct student stud1[10];
Здесь stud1 - имя массива структур, а stud1[0] - это первая структура, stud1[1] - вторая... stud1[9] - десятая структура. Чтобы получить доступ к полю age пятой структуры нужно написать
stud1[4].age
Чтобы получить доступ к полю kurs первой структуры нужно написать
stud1[0].kurs
В памяти каждый элемент имеет свое место, и размещаются они последовательно
Компилятор выделяет под структурную переменную число байтов памяти, достаточное для хранения всех ее полей. Однако выделенное количество байт не всегда равно сумме длин отдельных полей из-за влияния дополнительного фактора внутреннего представления структурных переменных, называемого выравнивание
Выравнивание (align) означает, что компилятор выбирает адреса переменных так, чтобы они были кратны некоторой величине. Эта величина определяется типом переменной и особенностями адресации данных этого типа на аппаратном уровне (чаще всего она равна 2). Часто выравнивание не обязательно, но при этом скорость обращения к объекту может снижаться. Если выравнивание производится, компилятор может быть вынужден добавить между полями структуры пустые байты, и тогда размер структуры (определяемый с помощью sizeof) будет превышать сумму размеров ее полей.