Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
Rustam
15 / 27 / 3
Регистрация: 05.09.2009
Сообщений: 475
#1

Подскажите о операторе delete - C++

26.09.2009, 18:47. Просмотров 2782. Ответов 5
Метки нет (Все метки)

Как правильно пользоваться оператором удаления delete??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2009, 18:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Подскажите о операторе delete (C++):

В чем разница между delete и delete[]? - C++
а можете еще по подробней рассказать про delete, точнее даже delete, чем именно отличается delete от delete, т.к. я попробовал...

Чем отличается delete[] от delete? - C++
чем отличается? delete mas от delete mas

delete[] *pointer vs. delete pointer и утечка памяти - C++
Здравствуйте! Есть класс "умного" указателя counted_ptr, который удаляет хранящийся в нём T* owned; только если кол-во владельцев...

size_t в операторе for - C++
Здравствуйте. Возникла проблема с типом size_t. Данный цикл почему то бесконечен for ( size_t j = 10; j >= 0; j-- ) { ; } Если...

Об операторе присваивания - C++
можно "перевести"?

Ошибка в операторе if - C++
if (i+j>=i*2) and (i+j<=n+1) or (i+j<=i*2) and (i+j>=n+1) выдаёт ошибку в первой строчке expected identifier before '(' token. В чём...

5
crashc
24 / 24 / 4
Регистрация: 26.07.2009
Сообщений: 414
26.09.2009, 18:50 #2
Освобождение памяти, выделенной с помощью операции new, должно осуществляться с помощью операции delete, а памяти, выделенной функцией malloc, − с помощью функции free. При этом переменная-указатель сохраняется и может повторно быть инициализирована.
Примеры
C++
1
2
3
delete n;
delete m;
free (u);
1
Monte-Cristo
2794 / 1380 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
26.09.2009, 18:52 #3
Стоит отметить, что delete еще вызывает деструктор. И если память была выделена под массив, необходимо удалять так:
C++
1
delete[] a;
1
crashc
24 / 24 / 4
Регистрация: 26.07.2009
Сообщений: 414
26.09.2009, 18:56 #4
не знаю у учитель нам давал только так
1
Rustam
15 / 27 / 3
Регистрация: 05.09.2009
Сообщений: 475
26.09.2009, 20:30  [ТС] #5
Там кажется когда работаешь с delete нужно как-то показывать указатель?? Подробнее непишите пожалуйста??
0
Monte-Cristo
2794 / 1380 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
26.09.2009, 21:35 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main() 
{
    int *x; // создаем указатель
 
    // выделяем память (создаем массив из 10 элементов) и присваеваем ее адресс переменной указателю
    x = new int[10]; 
    
    // удаляем выделенну память (переменная-указатель при этом НЕ УДАЛЯЕТСЯ)
    delete[] x;
    
    return 0;
}
Если создается не массив, используется оператор освобождения памяти delete а не delete[]
1
26.09.2009, 21:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2009, 21:35
Привет! Вот еще темы с ответами:

Найти ошибку в операторе - C++
Задание может и простое. Но я что-то не пойму. Поясните, пожалуйста.

Сравнение символов в операторе if - C++
Доброго времени суток! Я новичок в c++, возникла задача: мне нужно, что бы при вводе ESC программа завершала работу. Проблемный участок...

Добавить оператор new в операторе + - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class ErkarTiv { public: char* a; void operator=(char* ); ...

Запятая в операторе scanf - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL,&quot;RUS&quot;); int s, a, b, c, d, e, f; printf(&quot;введите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru