Динамическое выделение - память - Большая Энциклопедия Нефти и Газа, статья, страница 2
Прошу послать меня на курсы повышения зарплаты. Законы Мерфи (еще...)

Динамическое выделение - память

Cтраница 2


Что общее и в чем различие между динамическим выделением памяти в C с помощью операций new и delete и динамическим выделением памяти с помощью функций malloc и free стандартной библиотеки С.  [16]

Что общее и в чем различие между динамическим выделением памяти в C с помощью операций new и delete и динамическим выделением памяти с помощью функций malloc и free стандартной библиотеки С.  [17]

Если размер класса контейнера, например, массива или стека, может быть определен во время компиляции ( например, при помощи нетипового параметра шаблона, указывающего размер), это устранит расходы на динамическое выделение памяти во время выполнения программы.  [18]

19 Два связанных объекта класса с самоадресацией. [19]

Создание и поддержание динамических структур данных требует динамического распределения памяти: возможности в процессе выполнения программы увеличивать область памяти для хранения новых узлов и освобождать ресурсы памяти, в которых уже нет необходимости. Пределы динамического выделения памяти ограничены только объемом доступной физической памяти или доступной виртуальной памяти в системах с виртуальной памятью. Впрочем, часто эти пределы намного меньше из-за того, что свободная память делится при совместном доступе к ней многих пользователей.  [20]

21 Графическое представление связанного списка. [21]

Используя для структур данных, размер которых может увеличиваться и уменьшаться во время исполнения программы, динамическое распределение памяти ( вместо массивов), можно сэкономить память. Не забывайте, однако, что указатели тоже занимают место в памяти и что динамическое выделение памяти влечет за собой дополнительные расходы времени на вызов функций.  [22]

В упражнениях вы встретите задание, в котором нужно будет использовать нетиповой параметр, облегчающий создание шаблона для класса Array, который мы разработали в главе 8, Перегрузка. Объекты класса Array, создаваемые на основе такого шаблона, получают необходимую память под свои элементы во время компиляции, вместо динамического выделения памяти во время выполнения программы.  [23]

Второй базовый механизм - оператор new [ ], распределяющий область памяти, необходимый для массива во время выполнения. В нашем особом случае он возвращает указатель на массив. В некоторых языках программирования динамическое выделение памяти массивам затруднено либо вообще невозможно. В других языках этот процесс выполняется автоматически. Динамическое распределение памяти служит важной функцией программ, управляющих несколькими массивами, отдельные из которых могут иметь большой размер. В данном случае необходимо без выделения памяти предварительно объявить массив с размером, не меньшим любого значения, которое допускается при вводе. В сложной программе, где может использоваться много массивов, выполнять эти действия для каждого из них затруднительно. Обычно используется код, подобный коду программы 3.6, по причине его гибкости.  [24]

25 Использование обработки сигнала ( часть 2 из 2. [25]

Программисты на C должны использовать для выделения памяти new и delete, а не malloc и free. Однако, многие, программирующие на C, сталкиваются с большим числом программ, полученных в наследство от языка С. Вот почему мы дополнительно обсуждаем динамическое выделение памяти в стиле С.  [26]

Так как объем памяти терминального процессора ограничен, необходимо эффективно использовать эту память. Поэтому блоки памяти, требуемой для входной и выходной таблиц сообщений и входного и выходного списков данных, выделяются динамически специальной управляющей программой - менеджером памяти. Однако накладные расходы, связанные с организацией произвольного доступа к объединенным в списки блокам памяти, и сложность такого режима работы заставили нас отказаться от динамического выделения памяти под дисплейный файл.  [27]

Так как объем памяти терминального процессора ограничен, необходимо эффективно использовать эту память. Поэтому блоки памяти, требуемой для входной и выходной таблиц сообщений и входного и выходного списков данных, выделяются динамически специальной управляющей программой - менеджером памяти. Однако накладные расходы, связанные с организацией произвольного доступа к объединенным в списки блокам ] памяти, и сложность такого режима работы заставили нас отказаться от динамического выделения памяти под дисплейный файл.  [28]

В отличие от текстового сегмента, который не может изменяться, сегмент данных может модифицироваться. Программы изменяют свои переменные постоянно. Более того, многим программам требуется выделение дополнительной памяти динамически, во время выполнения. Чтобы реализовать это, операционная система UNIX разрешает сегменту данных расти при динамическом выделении памяти программам и уменьшаться при освобождении памяти программами. Программа может установить размер своего сегмента данных с помощью системного вызова brk. Таким образом, чтобы получить больше памяти, программа может увеличить размер своего сегмента данных. Этим системным вызовом пользуется библиотечная процедура malloc, используемая для выделения памяти.  [29]

Так, микросхема Z-MMU фирмы Zilog [85], предназначенная для управления сегментированной памятью, осуществляет защиту содержимого сегментов. Имеется тенденция к выполнению всех средств управления памятью ( организации виртуальной и ассоциативной памяти, памяти с обнаружением и коррекцией ошибок и пр. Для микропроцессора третьего поколения MC68000 фирмы Motorola разработано устройство управления памятью МС68451 [138], которое осуществляет аппаратное преобразование логических адресов памяти в физические, динамическое выделение памяти в процессе выполнения Программы, динамическое перемещение программ, защиту сегментов программы по записи, чтению, доступу для выполнения. Функции защиты сегментов программы необходимы для мультипрограммных и мультизадачных систем.  [30]



Страницы:      1    2    3