Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49

Решить задачу "висячих" указателей

15.09.2025, 20:11. Показов 5082. Ответов 98

Студворк — интернет-сервис помощи студентам
Добрый день.

Задача:
На объект может ссылаться несколько указателей. Когда объект удаляется, то указатели не должны превратиться в "висячие". Их надо либо сразу обнулить, либо обнулять при первом обращении, или любой другой способ, чтоб избежать ошибки.

Как это можно реализовать? ... хотя бы общие идеи?

Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2025, 20:11
Ответы с готовыми решениями:

нужно решить задачу в ассемблере с комментами , срочно!
1. В регистр BL записать число EF, в ячейку со смещением 20 записать число 2A. Из содержимого BL...

Помогите решить задачу алгоритм есть
Дана блок-схема алгоритма обработки двумерного массива. Какова будет сумма элементов массива после...

Помогите решить задачу пожалуйста!!!
Элементы 3 строки поменять на минимальный элемент главной диагонали (матрица 4*4). Нужно составит...

98
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
16.09.2025, 17:13  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от alecss131 Посмотреть сообщение
Просто сырые указатели это прошлый век ... С++ отходят от них.
А почему вы их называете "сырыми"?
Это и есть указатели, ведь они в разы быстрее смартпоинтеров, а на некоторых задачах на порядок быстрее. Вот как C++ может отходить от указателей?
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
16.09.2025, 17:46
Цитата Сообщение от JordanO2 Посмотреть сообщение
неужели они боятся классических указателей?
Чего их боятся?
Они используются там где нужно.
В остальных случаях конечно обходятся уже готовыми решениями.
На каждый чих возится с ресурсом памяти, занятие для тех у кого слишком много времени.

Цитата Сообщение от alecss131 Посмотреть сообщение
Это как минимум не удобно.
А ещё чревато множеством трудноуловимых ошибок.
Чем сложнее задача, тем вероятнее возникновение ошибок.

Цитата Сообщение от JordanO2 Посмотреть сообщение
Интересно, как вообще могла появиться мысль про "все указатели переделать" ?
Так обобщенно без конкретики - это именно это и значит.

Цитата Сообщение от JordanO2 Посмотреть сообщение
ну, хотя бы ссылку
Как оно устроено [Хабр]

Книга: Roy Patrice. C++ Memory Management
Chapter 6: Writing Smart Pointers

Добавлено через 6 минут

Не по теме:

Цитата Сообщение от JordanO2 Посмотреть сообщение
И даже тут косячат("мы" - это первое лицо, не третье)
Мы - это множественное)
Цитата Сообщение от Eddy_Em Посмотреть сообщение
ТС, чего это ты о себе то в третьем лице, то во множественном числе? Корона не жмет?
Где то я уже видел таких погроммистов)

0
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
16.09.2025, 17:56  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
Как оно устроено [Хабр]
Ссылка про shared_ptr, а это хоть как-то можно связать с нашей темой "висячие" указатели?
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
16.09.2025, 17:57
Похоже автор пишет кривой код, а как собрать мусор, он не знает.
Намек понятен.
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
16.09.2025, 18:23
Цитата Сообщение от JordanO2 Посмотреть сообщение
Ссылка про shared_ptr, а это хоть как-то можно связать с нашей темой "висячие" указатели?
В смысле?
Напрямую. У тебя контроль над объектом, что с ним делать решать тебе.
operator bool

checks if the stored pointer is not null
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <memory>
using T = std::shared_ptr<int>;
 
void foo(T t){
   t.reset();
}
 
int main(){
   auto t = std::make_shared<int>(1000500);
   foo(t);
   if (t)
      std::cout << "Object exists" << std::endl;
   else
      std::cout << "No object" << std::endl;
}
0
332 / 126 / 8
Регистрация: 19.07.2024
Сообщений: 664
16.09.2025, 18:23
Цитата Сообщение от JordanO2 Посмотреть сообщение
Самый легкий вариант - хранить указатели в массиве
Ну да, а про указатель на сам массив? Забыли? Его кто очистит?
Или как к примеру передавать ваш указатель внутрь функции? Или возвращать из функции? Вот тупо: функция возвращает указатель, а вы забыли его сохранить в переменную. И все ваши пляски с массивами указателей - пошли под откос.
Или вы только хотите их (указатели) хранить, ничего с ними не делая? Тогда зачем они вообще нужны?

Вобщем как уже было сказано: не страдайте ерундой! Страдайте лучше чем-то полезным.
0
16.09.2025, 18:26

Не по теме:

Цитата Сообщение от a380 Посмотреть сообщение
Похоже автор пишет кривой код, а как собрать мусор, он не знает.
Да какое там.
Игорь3Д фигней мается.

0
332 / 126 / 8
Регистрация: 19.07.2024
Сообщений: 664
16.09.2025, 18:31
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Ну-ну! Там вообще абсолютно все по указателям передается, если забыл сделать копию.
Нет там никаких указателей в явном виде, с которыми может оперировать погромист (забывающий про них).

Вас же не волнует, что пока вы пишете свои посты на форум, то в этот момент внутри вашего браузера толкутся толпы указателей?
Вот и программиста Python ником образом не волнует, что там под капотом его Python-а.

PS: Или вас волнуют указатели внутри вашего браузера? И вы из-за этих волнений не можете спать ночами?
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
16.09.2025, 18:32
Цитата Сообщение от JordanO2 Посмотреть сообщение
Ссылка про shared_ptr, а это хоть как-то можно связать с нашей темой "висячие" указатели?
То есть, висячих указателей не будет.
0
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
16.09.2025, 18:42  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
В смысле? Напрямую.
Нет, не напрямую, и не противоположно. Shared и висячие указатели даже не сравнить, как "желтое" с "мягким" - это разные категории.

Цитата Сообщение от SmallEvil Посмотреть сообщение
У тебя контроль над объектом, что с ним делать решать тебе.
Тема про указатели, не про объекты.
---------------
Какой же я терпеливый, 3-я страница обсуждения, приходится объяснять, что с объектами и с памятью все в порядке, все надежно работает, и, кстати, никаких утечек.
А тема обсуждения - это Указатели!
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
16.09.2025, 19:01
Цитата Сообщение от JordanO2 Посмотреть сообщение
Тема про указатели, не про объекты.
Именно про них. Создать абстракцию что бы избежать висячих указателей.
По другому что? И зачем?
Ну держи дерево с указателями и мониторь, сколько душе влезет XD

Цитата Сообщение от JordanO2 Посмотреть сообщение
Нет, не напрямую, и не противоположно.
Тот что тебе нужен уже все выбросили на помойку.
std::auto_ptr;

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <memory>
using T = std::auto_ptr<int>;
 
void foo(T t){
   t.release();
   t.release();
}
 
int main(){
   T t(new int(100500)); // владелец ресурса
   if (t.get())
      std::cout << "Object exists" << std::endl;
   else
      std::cout << "No object" << std::endl;
      
   foo(t);
   if (t.get())
      std::cout << "Object exists" << std::endl;
   else
      std::cout << "No object" << std::endl;
}
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
16.09.2025, 19:03
Цитата Сообщение от JordanO2 Посмотреть сообщение
тема обсуждения - это Указатели!
Ааааа, ТС просто поговорить захотел про указатели.
Мозги покомпостить всем. Скучно ему стало.
0
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
16.09.2025, 19:04  [ТС]
Цитата Сообщение от jcxz Посмотреть сообщение
Ну да, а про указатель на сам массив? Забыли? Его кто очистит?
Всегда, везде, во ВСЕХязыках программирования ресурсы(объекты) очищает - владелец.
Ну, для java и # еще простительно, они по принуждению сидят на автоматике, все указатели smart. Но, как программисты C++ могут забыть про указатели?
Указатели работают в десять раз быстрее smart-в. Как это могут не знать в C++ ?
Еще раз:
Цитата Сообщение от jcxz Посмотреть сообщение
Его кто очистит?
Владелец очистит. А указатели (в С++) не владеют объектом, они только указывают на него.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
16.09.2025, 19:07
Цитата Сообщение от JordanO2 Посмотреть сообщение
Указатели работают в десять раз быстрее smart-в. Как это могут не знать в C++ ?
Шоб мы без тэбя дэлали))
0
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
16.09.2025, 19:09  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
То есть, висячих указателей не будет.
Конечно, в "желтом" не будет "мягкого" ....
Через отрицание удалось таки связать несовместимые категории?
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
16.09.2025, 19:12
Цитата Сообщение от JordanO2 Посмотреть сообщение
Через отрицание удалось таки связать несовместимые категории?
Всё там совместимо, нет никакой разницы где ты будешь делать этот уровень абстракции.
Оборачивая указатель, вызывая функции его проверки, это не имеет никакого значения.
Можешь и дальше упорно нести чушь.
А я уже повеселился. Бб.
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
16.09.2025, 19:12
Народ, не ведитесь, ТС просто цитирует википедию.
Именно там написано, чем отличаются висячие указатели от утечки памяти.
ТС хочет проверить, знают ли об этом остальные.
0
16.09.2025, 19:14

Не по теме:

Цитата Сообщение от a380 Посмотреть сообщение
ТС хочет проверить, знают ли об этом остальные.
Ну да, говоря о Луне он хочет проверить знает ли кто то о его тараканах в голове)

0
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
16.09.2025, 19:15  [ТС]
Что означает эта надпись, кто-нибудь знает?

Мы обсуждаем сложную техническую тему, а этот тип постоянно офтопит и пачкает.
0
Windows must die
605 / 878 / 104
Регистрация: 23.11.2021
Сообщений: 5,162
Записей в блоге: 19
16.09.2025, 19:19
Цитата Сообщение от jcxz Посмотреть сообщение
Вот и программиста Python ником образом не волнует, что там под капотом его Python-а.
Ага, только когда он передает нечто в функцию и надеется, что передана копия, потом удивляется: "а чой-то у меня данные-то поменялись?".
Ну, благо, я змеюку не использую. Больно уж убогий недоЯП. Там даже фигурных скобочек нет и разделения операторов точкой с запятой - ничего на нем вменяемого написать невозможно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.09.2025, 19:19

помогите определить по какому алгоритму решить задачу
суть задачи состоит в том,что: есть 4 поля размерами 120га,95га,110га,140га..мне требуется...

Помогите решить задачу. Как расставить овец?
Не буду грузить техническими терминами типа 'смена ассортимента','конвеер'. Короче.. Волк с лисой...

Помогите решить задачу.
ПООМГИТЕ у меня завтра зачёт!!!! Короче такое вот заданеи: При решении данной задачи...

Помоготе решить задачу
Составить программу, которая выводит минимальное количество гирь, необходимых для взвешивания...

Помогите решить задачу по архитектуре ЭВМ
решите пожалуйста задачу x = (a*3+b*c)/(b-4) Пример x=(a*2+b*c)/(d-3) программа выполняет...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru