С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 25.08.2021
Сообщений: 92

Почему адреса памяти разные у указателя? delete

25.08.2021, 12:26. Показов 2185. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
    int* ptr = new int;
    cout << ptr << endl;
    
    delete ptr;
 
    cout << ptr << endl;
Вывод:
012799E0
00008123

Почему так? Ведь указатель то должен указывать на одну и туже область память, очистили эту область. но указатель то не трогали
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.08.2021, 12:26
Ответы с готовыми решениями:

Почему в разных версиях Ubuntu разные регистры в двоичном коде и в принципе разные адреса команд и т.д
Я компилирую программу на C в ubuntu через gcc, потом хочу посмотреть двоичный код, но ,почему то, в одно версии регистры интеловские и все...

Указание определенного адреса памяти для указателя
Добрый день всем. Сидел, баловался с памятью и вдруг задумался: а можно ли указатель определять на конкретный адрес? Чтобы было понятнее,...

выделение памяти при увеличении адреса указателя на размерность int
добрый день, форум изучаю указатели и столкнулся с достаточно странной, для меня проблемой int в c++, как я учил, имеет стандартную...

7
249 / 79 / 31
Регистрация: 29.03.2020
Сообщений: 497
25.08.2021, 12:48
да вроде работает правильно, где и чем компилируете?
1
249 / 79 / 31
Регистрация: 29.03.2020
Сообщений: 497
25.08.2021, 12:54
вот
Миниатюры
Почему адреса памяти разные у указателя? delete  
0
1 / 1 / 0
Регистрация: 25.08.2021
Сообщений: 92
25.08.2021, 13:05  [ТС]
в visual studio,
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
25.08.2021, 13:13
Лучший ответ Сообщение было отмечено Garrysf как решение

Решение

Garrysf, отладочный режим это делает.
https://www.microsoft.com/secu... eferences/
For this reason we have chosen 0x8123 as a sanitization value – from an operating system perspective this is in the same memory page as the zero address (NULL), but an access violation at 0x8123 will better stand out to the developer as needing more detailed attention.
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,205
25.08.2021, 19:08
Цитата Сообщение от Garrysf Посмотреть сообщение
Ведь указатель то должен указывать на одну и туже область память, очистили эту область. но указатель то не трогали
Нет, не должен. В С++ значение указателя, указывающего на освобожденную память (например, после delete), является неопределенным и непредсказуемым. Делать какие-либо предположения об этом значении бессмысленно. Никакого "должен указывать на одну и туже область память" нет.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
25.08.2021, 19:45
Цитата Сообщение от Garrysf Посмотреть сообщение
очистили эту область
Не очистил память. delete занимается тем, что забирает у твоей программы право пользоваться этой памятью и отдаёт это право другим программам. Точно так же как и new - оно только передаёт твоей программе право пользоваться памятью в куче.

Обращение к памяти чужих программ приводит к вылету (не всегда, но часто).
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,205
25.08.2021, 19:53
Цитата Сообщение от TRam_ Посмотреть сообщение
delete занимается тем, что забирает у твоей программы право пользоваться этой памятью и отдаёт это право другим программам. Точно так же как и new - оно только передаёт твоей программе право пользоваться памятью в куче.
Обращение к памяти чужих программ приводит к вылету (не всегда, но часто).
Не надо создавать путаницу. В системах с виртуальной памятью (Windows, Linux и т.д.) память, с которой вы работаете, не имеет никакого отношения к "другим программам". Никакого "обращения к памяти чужих программ" вы не получите обращением через указатель.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.08.2021, 19:53
Помогаю со студенческими работами здесь

почему не delete (выделение памяти)
почему в примерах в мсдне не высвобождается память после использования asctime, ctime? #include &lt;time.h&gt; #include &lt;stdio.h&gt;...

Разные адреса одной и той же переменной. Почему?
Вот сам наткнулся на такую вещь. int * GETAdress(int tmp) { return &amp;tmp; } int main() { int a = 6; int *pa;

Почему разные адреса одного и того же элемента динамического массива?
Я создаю динамический массив и отправляю его в функцию, если потом сравнивать адреса элементов массива в главной и вызываемой функции они...

Почему адреса у указателей разные, несмотря на то, что они указывают на одну и ту же переменную?
Почему адреса у указателей разные, они же указывают на одну и туже переменную int main() { setlocale(LC_ALL, &quot;Russian&quot;); ...

Почему адреса элементов массива находятся в памяти не по порядку
Приветствую! Подскажите пожалуйста почему адреса элементов массива находятся в памяти не по порядку? почему и где происходит изменение...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru