Пятница, 23.08.2019, 21:38
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1193
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Свободные массивы

Свободными называют двухмерные массивы, размер каждой из строк которых может быть различным.

Поскольку стандарты языка программирования не допускают такого вида массивов, то создается симбиоз массивов:

1.      одномерный массив указателей, число элементов n которого равно числу строк переменной длины,

2.      и n одномерных массивов различной длины.

Таким образом, массив указателей имеет фиксированную длину, значит, фиксировано и число строк свободного массива. Память под каждую строку свободного массива запрашивается динамически.Следовательно, при создании такого массива требуется (n+1) обращений к ОС для получения динамической памяти. После того как надобность в свободном массиве отпала, необходимо освободить занимаемую им память, что опять-таки потребует (n+1) обращений к ОС.Массив указателей, U имеет n элементов, каждый из которых содержит адреса векторов-строк массива.Для управления свободным массивом может создаваться дескриптор, в простейшем случае - это указатель на массив указателей.Свободные массивы используются для представления других, более сложных структур. С примерами таких массивов мы встретимся ниже.По аналогичной схеме могут быть созданы и двухмерные массивы с одинаковыми длинами строк.

К недостаткам можно отнести потребность в дополнительной памяти под массив указателей и многократное обращение к ОС для получения памяти.

К преимуществам можно отнести следующее:
    1) при работе с очень большими массивами получение больших сплошных областей может стать невозможным; в то же время получение памяти под каждую строку вполне возможно;
    2) появляется возможность обрабатывать большие массивы данных, хранящихся в файлах, размещая в оперативной памяти только те строки, которые совместно обрабатываются в данный момент;
    3) применение свободных массивов позволяет более эффективно использовать память;
    4) при сортировке массива по строкам (не элементов в строке, а самих строк) вместо перестановок строк в некоторых случаях можно переставлять только элементы массива указателей, в то время как сами строки остаются на месте.

 

Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---