русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Операция delete


Дата добавления: 2015-06-12; просмотров: 577; Нарушение авторских прав


 

Операция используется для явного освобождения выделенного операцией new участка памяти. В нашем случае её синтаксис такой: delete указатель;. Для примера (см. 4.1) delete p; освобождает ячейку, адрес которой хранился в переменной- указателе (p). Но при этом ячейка p, в которой находится адрес вещественного числа, из памяти не удаляется. В дальнейшем её можно использовать. Но значение как p, а, значит, и *p после выполнения операции не определено.

Операцию delete необходимо использовать только для указателя, получившего значение с помощью new. Например, если

float x; float *q=&x;

то результат операции delete q; непредсказуем. Нельзя использовать эту операцию и для статического массива. Следующий код

const n=10; int a[n]; … delete a;

приводит к ошибке.

 

Упражнения, тесты.

 

1. Пусть int t=10; int *p=&t; Какие из следующих операторов допустимы и что они означают (что будет выведено, какое значение примет переменная): 1) cout<< p; 2) p=1000; 3) *p=1000; 4) t*=*p; 5) cout<<(*p); 6)cout <<(*p*=2)?

2. Дан код:

void fun1 (int *x, int &y) { (*x)++; y--;} //1

void main() { int a=5, b=2; fun1 (&a, b); //2

cout<< a<< “ “<< b; getch() ; }

Что будет выведено?

Варианты ответов: 1) 6 1; 2) 5 1; 3) 6 2; 4) 5 2; 5) Ошибка в //1;

6) Ошибка в //2; 7) Ошибки в //1 и //2.

3.. Дан код:

void fun4 (int x, int *y) { * y=x*10; } //1

void main() { int a=5, *b=new int (2); //2

fun4 (????????); //3

cout<< a<< “ “<< (*b); getch() ; } //4

Что записать в скобках в строке //3, чтобы вывести 5 50?

Варианты ответов: 1) fun4(a,b); 2) fun4(a, &b); 3) fun4(&a, &b);

4)fun4(a, *b); 5) ошибки (указать номера строк).

4. Дан код:

void fun5(int &x, int *y)



{ ????????????? ; } //1

void main()

{ int a=5, *b=new int; //2

fun5 (a,b); //3

cout<<endl<<a<<" "<<(*b)<<endl; //4

getch(); }

Что записать в тексте функции в строке //1, чтобы вывести 5 15?

Варианты ответов: 1) y=x+10; 2) *y=*x+10; 3) *y=x+10; 4)y=*x+10;

5) ошибка в //2 6) ошибка в //3 ; 6) ошибка в //4 .

5. Дан код:

int *p1= new int = 11; int *p2; *p2= new int =11; int *p3= new int[11];

int *p4= new int (11); int *p5= new (int) 11; int *p6= new int :11;

Для каких указателей (p1 — p6) правильно резервируется память для одной целочисленной переменной и выполняется её инициализация?



<== предыдущая лекция | следующая лекция ==>
Операция new | Указатели и одномерные массивы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.989 сек.