Главная Програм-е на ЯВУ » Файлы » Лекции » Програм-е на ЯВУ [ Добавить материал ]

Динамические структуры данных

[Скачать с сервера (152.3 Kb) - бесплатно] 12.06.2009, 00:18

Лекция в виде презентации в формате pdf на тему: "Динамические структуры данных".

Фрагменты из лекции

Динамические структуры данных – это структуры данных, память под которые выделяется и освобождается по мере необходимости.

Примеры:
  1. Статические структуры данных:
    • массив гласных букв;
    • таблица умножения (матрица 9x9);
  2. Динамические структуры данных:
    • список сообщений в Internet-форуме;
    • дерево предков и потомков;
  3. Статические структуры данных:
    • память выделяется на этапе компиляции;
    • размер памяти остается неизменным в процессе работы программы;
  4. Динамические структуры данных:
    • память выделяется в процессе работы программы (на этапе компиляции размер занимаемой памяти практически равен нулю);
    • размер памяти меняется в процессе работы программы.

Преимущества и недостатки динамических структур данных

Преимущества
  1. размер занимаемой памяти всегда соответствует объему хранимой информации (память то выделяется, то освобождается)
  2. объем хранимой информации практически не ограничен
Недостатки:
  1. Более сложный способ работы с динамическими структурами данных.
void *malloc( size_t size );  - Выделяет непрерывный блок памяти размером size байт. Возвращает либо адрес выделенного блока памяти, либо NULL, если память не выделена.

void *calloc( size_t num, size_t size ); - Выделяет массив из num элементов размером size байт каждый. Возвращает либо адрес выделенного блока памяти, либо NULL, если память не выделена.

void *realloc( void *memblock, size_t size ); - Расширяет или сокращает блок памяти memblock до новых размеров size. Возвращает либо адрес вновь выделенного блока памяти, либо NULL, если память не выделена. Если новый блок памяти выделяется успешно, то старый освобождается автоматически. Содержимое блока памяти сохраняется, на сколько это возможно.

void free( void *memblock ); - Освобождает память, занимаемую выделенным блоком памяти.

Выделение памяти под динамический массив

  1. На этапе компиляции определяется только указатель на первый элемент массива;
  2. Выделение памяти происходит на этапе выполнения программы, когда известно, сколько элементов должно храниться в массиве;
  3. Под массив выделяется непрерывный участок памяти;
  4. Для выделения памяти используются библиотечныефункции calloc() или malloc().
Похожие материалы:

Добавил: COBA (12.06.2009) | Категория: Програм-е на ЯВУ
Просмотров: 4421 | Загрузок: 1611 | Рейтинг: 5.0/1 |
Теги: Динамические данные, Контейнеры, массивы, программирование, Память, ЯВУ, лекции
Комментарии (0)

Имя *:
Email *:
Код *: