Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Динамическое распределение памяти

Основные принципы перегрузки операций | Запреты на перегрузку операций | Базовые и производные классы. | Struct card | Очереди | Алгоритм как абстрактная машина | Сопоставление алгоритмических моделей | Формы рекурсивных процедур. | Пример рекурс алгоритмаЗадача о Ханойских башнях. | Program Hanoi_Towers; |


Читайте также:
  1. I. Революционное народничество 1870-х гг. и современность (Российское народничество и народовольцы: к вопросу об исторической памяти российского народа).
  2. II. Распределение часов курса по темам и видам работ
  3. II. Расчет объема памяти информационно-логической машины (ИЛМ).
  4. III. Распределение часов курса по темам и видам работ
  5. Paбoтa памяти
  6. Автоматическое распределение реактивной нагрузки СГ
  7. Автораспределение поставок

Создание и использование динамических структур данных требует дина­мического распределения памяти - возможности получать в процессе испол­нения дополнительную память для хранения новых узлов и освобождать бло­ки памяти, ставшие ненужными. Максимальный размер выделяемой динами­чески памяти определяется доступной физической памятью компьютера или доступным виртуальным адресным пространством в системе с виртуальной па­мятью. Однако часто эти размеры значительно меньше, потому что память разделяется между многими пользователями (задачами).

Для динамического распределения памяти необходимо применение функ­ций malloc и free, атакже операции sizeof. Функция malloc принимает в ка­честве аргумента число байт, которое необходимо выделить, и возвращает ука­затель на выделенную память типа void*. Указатель void* можно присвоить любой переменной-указателю. Функция malloc обычно используется совмест­но с операцией sizeof. Например, оператор

newPtr = malloc(sizeof(struct node));

оценивает sizeof(struct node) для определения размера в байтах структуры типа struct node, выделяет новый блок памяти размером в sizeof(struct node) байт, и сохраняет указатель на выделенную память в переменной newPtr. Если необходимого количества памяти нет в наличии, malloc возвращает указатель NULL.

Функция free освобождает память, т.е. память возвращается системе, и в дальнейшем ее можно выделить снова. Для высвобождения памяти, динами­чески выделенной предыдущим вызовом оператора malloc, используется опе­ратор


Дата добавления: 2015-07-16; просмотров: 76 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Int data;| Free(newPtr);

mybiblioteka.su - 2015-2024 год. (0.006 сек.)