Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
2 / 2 / 1
Регистрация: 11.03.2013
Сообщений: 64

Что будет с указателем после использования операции delete?

28.02.2014, 21:51. Показов 6816. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
int main()
{
    int *wtf_ptr;
 
    wtf_ptr=new int(8);
 
    cout << *wtf_ptr << "\t" << wtf_ptr << endl;
 
    delete wtf_ptr;
 
    cout << *wtf_ptr << "\t" << wtf_ptr << endl;
 
    cout << "Hello World!" << endl;
    return 0;
}
При выводе содержимого динамической переменной после применения delete вполне предсказуемо видим мусорное значение. Гораздо интереснее ситуация со значением адреса переменной, который хранится в указателе. И до уничтожения объекта, и после там хранится один и тот же адрес. Вопрос: а обязан ли ? То есть, каково В ОБЩЕМ СЛУЧАЕ значение указателя после применения к нему операции delete? А как обстоят дела с delete []?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2014, 21:51
Ответы с готовыми решениями:

Используя delete по указателю, возвращенному new [] или delete [] указателем, возвращаемым new
Помогите ответить на вопрос, не могу понять суть вопроса (правильно ли понимаю, что будет если выделить память в куче и затем не удалить...

Что будет, если new вызвать 2 раза с одним и тем же указателем?
Собственно вопрос что будет? напрмер int *i=new(1); i=new(3); i будет сылаться на ячеку со значенеим 3 это ясно, а куда денется ячейка со...

Динамический массив структур. Почему данные доступны после выполнения операции delete []
Всем привет! Выполнил вот такое задание. После того как вывелись данные трех структур, очищаю выделенную область памяти оператором delete...

21
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
18.02.2018, 01:29
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от mariko_11 Посмотреть сообщение
каково В ОБЩЕМ СЛУЧАЕ значение указателя после применения к нему операции delete?
"When the end of the duration of a region of storage is reached, the values of all pointers representing the address of any part of that region of storage become invalid pointer values"
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
18.02.2018, 01:53
mariko_11, аналогия Tulosba, наглядна. Сырой указатель не имеет никаких механизмов осуществляющих владение (поддержание идеомы RAII). Это значит, что в отличие от смарт-пойнтеров, скажем, разные указатели на одну и ту же память (адрес) не имеют друг о друге ни какого понятия. Легко понять как дорого бы обошлась для производительности и объёма кода затея наделить их таким знанием (механизмом).
То есть, нет такого механизма и если бы было принято решения сбрасывать значение указателя в ноль при проведении delete, остальные указатели не смогли бы об этом узнать, даже. А это означает логически не консистентное поведение:
C++
1
2
3
4
int *a, *b, *c;
a=new int(123);
b=c=a;
delete a;//если бы delete делал бы неявно a=nullptr;  то он ничего не знает о b и c и они останутся не "сброшенными"
поэтому, дом и адрес дома решили не связывать. Tulosba, прав, конечно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2018, 01:53

в классе создаётся объект оператором new, как его удалить после использования в основной программе? delete в вызывающей функции не вариант!
Собсно //Это типа служебного класса. (Внимание! В оригинальном коде он вложен в класс xx, но я этого не стал делать, дабы не...

После использования операции присваивания ошибку выдает само удаление файла
У меня есть шаблон. Его принцип работы как ArrayList из java. Но есть проблема с удалением нетипизированого массива или с операцией...

Какое будет значение Р после выполнения операции логического присваивания?
Значение Р после выполнения операции логического присваивания P:=(2*2=4) and (3*3=10) 1. 14 2. истина 3. 0 4. ложь 5. 1

Операции с указателем к char[]
Есть некая структура, например WNDCLASSA, где её члены: typedef struct tagWNDCLASSA { UINT style; WNDPROC ...

Что будет, если клиент арендовал адрес dchp, и во время использования пул изменился?
пул был 192.168.1.2-192.168.1.34 арендован был адрес 192.168.1.13 к примеру изменили на 192.168.1.50-192.168.1.100 что будет с...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru