Операция delete освобождает для дальнейшего использования в программе участок памяти, ранее выделенной операцией new:
delete ip; // Удаляет динамический объект типа int,
Совершенно безопасно применять операцию к указателю NULL.
Результат же повторного применения операции delete к одному и тому же указателю не определен.
Обычно происходит ошибка, приводящая к зацикливанию.
Чтобы избежать подобных ошибок, можно применять следующую конструкцию:
int *ip=new int[500];
. . .
if (ip){
else
{
delete ip; // Удаляет динамический объект типа int,
// если было ip = new int;delete [ ] mas; // удаляет динамический массив длиной 50, если было
// double *mas = new double[50];
Совершенно безопасно применять операцию к указателю NULL.
Результат же повторного применения операции delete к одному и тому же указателю не определен.
Обычно происходит ошибка, приводящая к зацикливанию.
Чтобы избежать подобных ошибок, можно применять следующую конструкцию:
int *ip=new int[500];
. . .
if (ip){
delete ip; ip=NULL;}
else
{
cout <<" память уже освобождена \n";}
Комментариев нет:
Отправить комментарий