Академический Документы
Профессиональный Документы
Культура Документы
Основы алгоритмизации и
программирования на
языках высокого уровня
1-й способ.
double *p_Product = 0;
p_Product = new double; Инициализировать
указатель можно
сразу в момент его
создания.
2-й способ.
double *p_Product = new double;
В любом случае указатель p_Product указывает теперь на
переменную типа double, размещенную в динамически
распределяемой памяти.
Институт бизнеса и менеджмента технологий БГУ 18
Операция new возвращает адрес
памяти из свободного хранилища,
выделенный для размещения
переменной типа double, и этот
адрес сохраняется в указателе
p_Product .
Затем этот указатель
применяется для работы с данной
переменной.
Институт бизнеса и менеджмента технологий БГУ 19
Пример. Переменной, расположенной
по адресу, содержащемуся в p_Product ,
присвоить число 7.65
*p_Product = 7.65;
Эту строку можно прочитать так:
"Присвоить число 7.65 значению указателя
p_Product " или "Разместить число 7.65 в той
области динамически распределяемой
памяти, на которую указывает p_Product ".
2-й способ.
delete имя_указателя;
1-й способ.
delete p_Product ;
p_Product = 0;
2-й способ.
delete p_Product ;
p_Product = new double;
Институт бизнеса и менеджмента технологий БГУ 28
При этом оператор delete
освобождает ячейку памяти, на
которую указывает p_Product, а
оператор new определяет новую
ячейку памяти для переменной
типа double, или, если p_Product
присваивается нулевое значение,
p_Product не указывает ни на
какую ячейку.
Институт бизнеса и менеджмента технологий БГУ 29
При удалении указателя с помощью
оператора delete происходит реальное
освобождение участка памяти, адрес
которого содержится в указателе.
Иными словами, отдается команда:
"Вернуть в динамически распределяемую
память участок, на который указывает
этот указатель".
Но сам указатель остается (ведь это
обычная переменная), и ему может быть
передан на хранение другой адрес.