logo
Подбельский Фомин_Программирование на языке СИ_

6.4. Динамические информационные структуры Статическое и динамическое представление данных.

Статическое и динамическое представление данных. В языках программирования типы данных и определения переменных (как объектов заданных типов) нужны для того, чтобы определить требования к памяти для каждого из этих объектов и фиксировать диапазон (пределы) значений, которые могут принимать эти объекты (переменные). Для базовых типов (int, long, double и т.д.) требования к памяти и диапазоны возможных значений определяются реализацией языка (компилятора). Из базовых типов формируются производные, такие, как массивы и структурные типы. Для производных типов требования к памяти заложены в их определениях. Таким образом, определив массив или структурный тип, программист зафиксировал требования к памяти в самом определении. Например, на основании определения double array[18] в памяти для массива array[ ] будет выделено не менее 18* sizeof (double) байт.

С помощью определения

не только задается состав структурного типа с названием struct mixture, но и утверждается, что каждый объект структурного типа struct mixture потребует для размещения не менее

sizeof (int) + sizeof (long) + 8* sizeof (char)

байт. Точный объем позволяет определить операция

sizeof (struct mixture).

Вводимые таким образом объекты позволяют представить только статические данные. Однако во многих задачах требуется использовать более сложные данные, представление которых (конфигурация, размеры, состав) может изменяться в процессе выполнения программы. О таких изменяемых данных говорят, используя принятый в информатике термин "динамические информационные структуры ".