Операция выделения памяти new
С помощью вышеозначенной операции мы можем себе позволить выделять память динамически - т. е. на этапе выполнения программы. Часто выражение, содержащее операцию new, имеет следующий вид:
Инициализатор - это необязательное инициализирующее выражение, которое может использоваться для всех типов, кроме массивов. При выполнении оператора
создаются 2 объекта: динамический безымянный объект и указатель на него с именем ip, значением которого является адрес динамического объекта. Можно создать и другой указатель на тот же динамический объект:
Если указателю ip присвоить другое значение, то можно потерять доступ к динамическому объекту:
В результате динамический объект по-прежнему будет существовать, но обратиться к нему уже нельзя. Такие объекты называются мусором. При выделении памяти объект можно инициализировать:
Можно динамически распределить память и под массив:
Далее с этой динамически выделенной памятью можно работать как с обычным массивом:
В случае успешного завершения операция new возвращает указатель со значением, отличным от нуля. Результат операции, равный 0, т.е. нулевому указателю NULL, говорит о том, что не найден непрерывный свободный фрагмент памяти нужного размера. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|