Если предположить, что речь идёт о пограммировании, то структуры - это тип данных, представляющий собой упорядоченную совокупность различных простых типов значений фиксированной длины. В языке pascal структуры называются записями (record). Изначально структуры хранили ТОЛЬКО данные, однако сегодня это уже не так, и структуры могут также содержать методы. Теперь по частям.
Простой тип данных - например, целое число (integer), логический тип (true/false), символ (char), число с плавающей запятой (float, double). В зависимости от языка этот список может быть разным, но обычно это просто числа и символы, иногда (если поддерживает язык) - указатели. Для любого простого типа данных заранее известен размер - float занимает 4 байта памяти, boolean и char - один.
Различных - если у вас совокупность переменных одинаковых простых типов, то для этого не обязательно заводить структуру, достаточно массива.
Упорядоченная - принципиально важен порядок объявления полей структуры. То, в каком порядке они записаны, строго указывает, в каком порядке они будут размещены в оперативной памяти.
Как правило, размер структуры равен суммы размеров простых типов, составляющих её, получить его можно с помощью оператора sizeof. Это не всегда абсолютно верно, но часто близко к правде :)
Например, так можно объявить структуру и создать экземпляр в Си-подобных языках (C, C++, C#, ...).
struct Dog {
float age;
char name[4];
size_t legsCount;
};
Dog dogInstance{2.5f, "Rex!", 4};
Оператор sizeof(Dog) скорее всего вернёт вам значение 16 = 4 байта на float + 4 * 1 байт на char + 8 байт на size_t (на 64-битной платформе).
Соответственно, если вы создаёте массив структур (Dog dogs[2]) или более сложную структуру, состоящую из простых:
struct TwoDogs {
Dog dog1;
Dog dog2;
};
То размер массива или этой структуры будет равен сумме размеров структур, которые в них входят - 16 + 16 = 32 байта.
желательно простым языком