Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_ekz_po_OP.docx
Скачиваний:
25
Добавлен:
23.09.2022
Размер:
260.63 Кб
Скачать
  1. Стековая память.

Стековая память - это область памяти, зарезервированная для каждой запущенной программы в системе, и она работает по принципу LIFO: "последним записан - первым считан" (Last Input First Output - LIFO).

  • хранит локальные переменные, аргументы функций и промежуточные значения вычислений;

  • размер определяется при запуске программы (обычно выделяется 4 Мб).

  1. Динамическая память или куча.

Динамическое выделение памяти. В этом случае используется комбинация операторов new и delete. Оператор new выделяет память для переменной (массива) в специальной области памяти, которая называется «куча» (heap). Оператор delete освобождает выделенную память. Каждому оператору new должен соответствовать свой оператор delete.

Куча — это специализированная структура данных типа дерево, которая удовлетворяет свойству кучи: если B является узлом-потомком узла A, то ключ(A) ≥ ключ(B).

  • динамически распределяемая память;

  • ОС выделяет память по частям (по мере необходимости).

  1. Статическая память.

Статическое (фиксированное) выделение памяти. В этом случае память выделяется только один раз во время компиляции. Размер выделенной памяти есть фиксированным и неизменным до конца выполнения программы. Примером такого выделения может служить объявление массива из 10 целых чисел.

  • хранит глобальные переменные и константы;

  • размер определяется при компиляции.

  1. Средства работы с памятью в языке C++. Утечка памяти.

В С++ есть свой механизм выделения и освобождения памяти — это функции new и delete.

Утечка памяти (англ. memory leak) — это неконтролируемое уменьшение свободной оперативной или виртуальной памяти компьютера. Причиной утечек становятся ошибки в программном коде.

  1. Работа с файлами. Ввод/вывод на консоль.

Для работы с файлами необходимо подключить заголовочный файл <fstream>В <fstream> определены несколько классов и подключены заголовочные файлы <ifstream> — файловый ввод и <ofstream>  — файловый вывод.

Файловый ввод/вывод аналогичен стандартному вводу/выводу, единственное отличие – это то, что ввод/вывод выполнятся не на экран, а в файл. Если ввод/вывод на стандартные устройства выполняется с помощью объектов cin и cout, то для организации файлового ввода/вывода достаточно создать собственные объекты, которые можно использовать аналогично операторам cin и cout.

  1. Гетерогенные и гомогенные структуры данных.

Гетерогенные: Структуры, записи, объединения

Гомогенные: Массивы и матрицы

В современных языках программирования логическое объединение целостных понятий называется записью (Pascal) или структурой (С/С++).

  1. Перечисляемый тип.

Перечисляемый тип — тип данных, чьё множество значений представляет собой ограниченный список идентификаторов.

  1. Структуры. 

Структура — это сгруппированные (ая) под одним именем одна или несколько переменных (возможно, различных типов). В качестве этих переменных могут быть также массивы данных, указатели на различные типы данных, также переменные других типов структур и т.д.

  1. Синонимы типов. typedef. Указатель на функцию. 

Синонимом типа называется определение, записанное при помощи type

В C++ typedef (сокращенно от «type definition», «определение типа») – это ключевое слово, которое создает псевдоним для существующего типа данных.

Указатель на функцию (function pointer) хранит адрес функции. По сути указатель на функцию содержит адрес первого байта в памяти, по которому располагается выполняемый код функции.