2 / 1 / 1
Регистрация: 15.09.2025
Сообщений: 49

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

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

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

Не по теме:

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

0
341 / 133 / 10
Регистрация: 19.07.2024
Сообщений: 744
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
610 / 883 / 104
Регистрация: 23.11.2021
Сообщений: 5,174
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru