Реферат: Распределение памяти

├────────────────────────┤ └─┤ A[2, 1] ... A[2, N] │

│ ... │ └─────────────────────┘

├────────────────────────┤ ┌─────────────────────┐

│ Указатель на строку M ├─────────┤ A[M, 1] ... A[M, N] │

└────────────────────────┘ └─────────────────────┘

Вектор указателей строк хранится в той области данных, с которой

ассоциируется массив, в то время как собственно массив хранится

в отдельной области данных. Адрес элемента массива А[i, j] есть

CONTENTS(i-1) + (j-1).

Первое преимущество этого метода состоит в том, что при

вычислении адреса не нужно выполнять операцию умножения. Другим

является то, что не все строки могут находиться в оперативной

памяти одновременно. Указатель строки может содержать некоторое

значение, которое вызовет аппаратное или программное прерывание

в случае, если строка в памяти отсутствует. Когда возникает

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

другой строки.

Если все строки находятся в оперативной памяти, то массив

требует больше места, поскольку необходимо место и для вектора

указателей.

Когда известно, что матрицы разреженные ( большинство

элементов - нули ), используются другие методы. Может быть

применена схема хеш-адресации, которая базируется на значениях i

и j элемента массива А[i, j] и ссылается по хеш-адресу на

относительно короткую таблицу элементов массива. В таблице

хранятся только ненулевые элементы матрицы.

Многомерные массивы

Мы рассмотрим размещение в памяти и обращение к

многомерным массивам, описанным, следующим образом:

К-во Просмотров: 804
Бесплатно скачать Реферат: Распределение памяти