Управление памятью C++:создание и удаление
Управление памятью C++:создание и удаление
В этом руководстве мы научимся эффективно управлять памятью в C++, используя операции создания и удаления с помощью примеров.
C++ позволяет нам выделять память для переменной или массива во время выполнения. Это известно как динамическое выделение памяти.
В других языках программирования, таких как Java и Python, компилятор автоматически управляет памятью, выделенной для переменных. Но это не так в C++.
В C++ нам нужно освободить динамически выделяемую память вручную после того, как переменная больше не нужна.
Мы можем динамически выделять, а затем освобождать память, используя 09
и 12
операторы соответственно.
Новый оператор C++
25
оператор выделяет память для переменной. Например,
06
Здесь у нас есть динамически выделенная память для 31
переменная с помощью 44
оператор.
Обратите внимание, что мы использовали указатель pointVar для динамического выделения памяти. Это связано с тем, что 52
оператор возвращает адрес ячейки памяти.
В случае массива 62
оператор возвращает адрес первого элемента массива.
Из приведенного выше примера видно, что синтаксис использования 77
оператор
15пре> <час>удалить оператора
Как только нам больше не нужно использовать переменную, которую мы объявили динамически, мы можем освободить память, занимаемую этой переменной.
Для этого
85
используется оператор. Он возвращает память операционной системе. Это называется освобождением памяти. .Синтаксис этого оператора:
23Рассмотрим код:
37Здесь у нас есть динамически выделенная память для
95
переменная с помощью указателя pointVar .
После печати содержимого pointVar , мы освободили память с помощью
103
.Примечание :если программа использует большой объем ненужной памяти с помощью
<час>117
, система может выйти из строя из-за нехватки памяти для операционной системы. В этом случае126
оператор может помочь системе избежать сбоя.Пример 1. Динамическое выделение памяти C++
45Вывод
54В этой программе мы динамически выделили память для двух переменных
131
и145
типы. После присвоения им значений и их печати мы, наконец, освобождаем память с помощью кода66Примечание. Динамическое выделение памяти может сделать управление памятью более эффективным.
Особенно для массивов, где во многих случаях мы не знаем размер массива до момента выполнения.
<час>Пример 2. Оператор создания и удаления C++ для массивов
78Вывод
85В этой программе мы попросили пользователя ввести количество студентов и сохранить его в num. переменная.
Затем мы динамически выделили память для
150
массив с использованием new .Мы вводим данные в массив (и позже печатаем их), используя нотацию указателя.
После того, как массив нам больше не нужен, мы освобождаем память массива с помощью кода
161
.Обратите внимание на использование
<час>170
после182
. Мы используем квадратные скобки193
чтобы обозначить, что освобождение памяти происходит из массива.Пример 3. C++ оператор создания и удаления для объектов
95Вывод
102В этой программе мы создали
206
класс с закрытой переменной age .Мы инициализировали age до
210
в конструкторе по умолчанию220
и вывести его значение с помощью функции232
.В
244
, мы создали253
объекта с помощью269
оператора и используйте указатель ptr чтобы указать на его адрес.В момент создания объекта
272
конструктор инициализирует age до285
.Затем мы вызываем
299
функция с помощью кода:110Обратите внимание на оператор стрелки
303
. . Этот оператор используется для доступа к членам класса с помощью указателей.
Язык C
- Термины и концепции цифровой памяти
- Переменные C++, литералы и константы
- Классы и объекты С++
- Публичное, защищенное и частное наследование C++
- Дружественные функции C++ и дружественные классы
- Управление каталогами и файлами Python
- Структуры и классы в C ++
- НОВАЯ МОДЕЛЬ B + МАЛИНЫ PI 3 ФУНКЦИИ И ПОКУПКА
- GE Digital запускает новое программное обеспечение для управления активами
- Новые роботы:экономичные и первоклассные