|
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
|
|
Решить задачу "висячих" указателей15.09.2025, 20:11. Показов 5077. Ответов 98
Метки указатель на объект (Все метки)
Добрый день.
Задача: На объект может ссылаться несколько указателей. Когда объект удаляется, то указатели не должны превратиться в "висячие". Их надо либо сразу обнулить, либо обнулять при первом обращении, или любой другой способ, чтоб избежать ошибки. Как это можно реализовать? ... хотя бы общие идеи? Спасибо.
0
|
|
| 15.09.2025, 20:11 | |
|
Ответы с готовыми решениями:
98
нужно решить задачу в ассемблере с комментами , срочно! Помогите решить задачу алгоритм есть Помогите решить задачу пожалуйста!!! |
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|
| 16.09.2025, 19:20 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||||||
| 16.09.2025, 19:39 | |||||||
|
Передать указатель и гарантировать что объект по этому указателю существует(или нет) может лишь программист. В рамках своего кода. ТЗ как такового нет. Ничего мы(и вот правильное использование местоимения) тут не обсуждаем. Добавлено через 4 минуты Тепер вернемся к нашим баранам. Если использовать для владельца std::shared_ptr, который уже имеет функционал. То можно передавать std::weak_ptr на владельца и это он уже будет гарантировать и давать возможность определить, существует ли исходный объект. Это разумный компромисс. Добавлено через 13 минут
Это очевидно всем. Во втором случае мы имеем возможность это определить, существует ли объект. При этом с минимальными накладными расходами и без каких либо дополнительных приспособлений и телодвижений. Теперь давай очередную "закидуху" из карманов, ТЗ то все равно нет, можно на ходу придумывать всё)
0
|
|||||||
|
332 / 126 / 8
Регистрация: 19.07.2024
Сообщений: 664
|
||
| 16.09.2025, 20:52 | ||
Раз с таким апломбом утверждаете то, в чём не разбираетесь.В Python объекты(ресурсы) очищает - сам Python. Потому и сразу рекомендовал его вам. PS: Но есть и другие языки, имеющие встроенные "сборщики мусора". Поинтересуйтесь у гугла. Это вам на домашнее изучение.
0
|
||
|
Модератор
|
|||
| 16.09.2025, 21:20 | |||
|
Добавлено через 1 минуту
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 16.09.2025, 21:31 | ||
|
0
|
||
|
Модератор
|
|
| 16.09.2025, 21:50 | |
|
SmallEvil, Я в этом плане плохо знаком. Они похожи на умные указатели в С++.
В языке только ссылки, они не могут быть нулевыми (nil), для этого в языке есть опционалы. Ну там во первых все типы делятся на reference и value, те что value хранятся на стеке и всегда копируются (хотя можно параметр задать как inout и менять его копию), а другие в куче и передается только ссылка. Ссылки только у классов и замыканий (структуры это value тип), вот у них есть несколько видов ссылок, по умолчанию они все сильные (strong), есть еще слабые (weak) и бесхозные (unowned). Слабые всегда опционалы и требуют проверки на наличие значения и извлечения значения, а бесхозные неявные опционалы (автоматическое извлечение значения, можно нарваться на не валидную ссылку). А так если есть хотя бы одна сильная ссылка то объект будет висеть, слабые и бесхозные ссылки не учитываются при удалении.
0
|
|
|
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
|
|||
| 17.09.2025, 06:32 [ТС] | |||
|
извиняюсь, но хотелось бы общаться ближе к теме, т.к. офтопика тут уже 4 страницы... Хотя, вижу от вас грамотные коменты, как исключение, отвечу: Про доказательства(скорости указателей над смартами) - см. в любой официальной документации всегда упоминается, что смарты(из-за медлительности и ресурсоемкости) можно использовать ТОЛЬКО в случае необходимости(контролировать время жизни объекта), во всех остальных случаях, просто менять указатели на смарты - это расточительство. ----------- Кстати(было тут #16), ТС может исправить заголовок темы? заменить бы слово "проблему" на "задачу", это возможно причина офтопика... кто-нибудь еще согласен с этим утверждением?
0
|
|||
|
Модератор
|
||||||||||||||||||||||||||||
| 17.09.2025, 12:04 | ||||||||||||||||||||||||||||
|
Я тут придумал интересный пример. Возьмем за основу чистый Си, компилятор Clang и библиотеку Blocks. Напишем вот такой код
Попробуем переписать это максимально точно на С++
Единственное решение приходит только использовать сырые указатели
В голову приходит только решение с использованием умных указателей. Хотя с их помощью не получается решить, не хватает знаний языка.
0
|
||||||||||||||||||||||||||||
|
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
|
|||
| 17.09.2025, 12:21 [ТС] | |||
|
0
|
|||
|
Модератор
|
|||||||||
| 17.09.2025, 12:27 | |||||||||
Прошу ткнуть носом, где написано про их медлительность https://learn.microsoft.com/en... w=msvc-170
1
|
|||||||||
|
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
|
||
| 17.09.2025, 12:36 [ТС] | ||
|
Согласны? --------- Ура .... Raw pointers ... теперь вижу, откуда "сырые". Спасибо за ссылку (learn.microsoft.com) - а вы спрашивали "что такое официальные доки"? Но, ведь, microsoft - это ни капли НЕ стандарт. Согласны?
0
|
||
|
884 / 537 / 229
Регистрация: 21.02.2011
Сообщений: 5,705
|
|||||||
| 17.09.2025, 12:54 | |||||||
0
|
|||||||
|
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
|
||
| 17.09.2025, 12:55 [ТС] | ||
|
Спасибо ![]() --------------- Кстати, а на этом cppreference.com есть какой-нибудь "About Us" ? Не могу найти их причастность к "Комитету"
0
|
||
|
2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49
|
||
| 17.09.2025, 13:13 [ТС] | ||
|
Оказывается, "комитет" знает про cppreference, но не признает их. alecss131, последняя просьба, как бесплатно скачать стандарт C++ с сайта isocpp.org ? Они с меня деньги просят.
0
|
||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|
| 17.09.2025, 14:16 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 17.09.2025, 14:37 | |||
|
Например: Document Number: N4950 (с++23) C++ Standards Committee Papers
1
|
|||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|
| 17.09.2025, 14:54 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
||
| 17.09.2025, 15:11 | ||
|
Работать с объектами и указателями на них через "фабрику". В ней запоминать выданные указатели и обнулять их при удалении объекта. Вариант 2. Хранить множество живых объектов (адресов). Перед использованием указателя проверять, что адрес содержится в множестве. Вариант 3. К каждому объекту добавлять заголовок. Перед использованием указателя анализировать содержимое заголовка. Возможны и более узкоспециализированные решения, но для них требуется знание деталей (порядок использования объектов, язык программирования).
0
|
||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
||
| 17.09.2025, 15:23 | ||
|
0
|
||
| 17.09.2025, 15:23 | |
|
помогите определить по какому алгоритму решить задачу Помогите решить задачу. Как расставить овец? Помогите решить задачу. Помоготе решить задачу Помогите решить задачу по архитектуре ЭВМ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 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), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|