Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Что такое сумма размеров структур ?

желательно простым языком

Информатика
Субботин Т.
  ·   · 850
тыжпрограммист   · 15 мар 2019  · tele.click/origin_of_species

Если предположить, что речь идёт о пограммировании, то структуры - это тип данных, представляющий собой упорядоченную совокупность различных простых типов значений фиксированной длины. В языке 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 байта.

желательно простым языком

Первый раз вижу нечто подобное. Могу предположить, если размер структуры — это величина, которая равна или больше(!) сумме размеров ее членов, и таких структур несколько, то сумма размеров структур – это сумма этих величин... Читать далее