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

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

15.09.2025, 20:11. Показов 5186. Ответов 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
333 / 127 / 8
Регистрация: 19.07.2024
Сообщений: 668
16.09.2025, 18:23
Цитата Сообщение от JordanO2 Посмотреть сообщение
Самый легкий вариант - хранить указатели в массиве
Ну да, а про указатель на сам массив? Забыли? Его кто очистит?
Или как к примеру передавать ваш указатель внутрь функции? Или возвращать из функции? Вот тупо: функция возвращает указатель, а вы забыли его сохранить в переменную. И все ваши пляски с массивами указателей - пошли под откос.
Или вы только хотите их (указатели) хранить, ничего с ними не делая? Тогда зачем они вообще нужны?

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

Не по теме:

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

0
333 / 127 / 8
Регистрация: 19.07.2024
Сообщений: 668
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
608 / 881 / 104
Регистрация: 23.11.2021
Сообщений: 5,163
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru