|
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
|
|
Понимание для чего вообще нужны указатели?12.11.2011, 20:12. Показов 33803. Ответов 112
Метки нет (Все метки)
Сейчас будет чистый мой тупняк. Слабонервным дальше не читать. Итак, для чего вообще нужны указатели? Я вот не пойму, зачем их надо было вообще придумывать??? Не понимаю их конкретной пользы, смысла. Кто-нибудь может по-человечески объяснить?
1
|
|
| 12.11.2011, 20:12 | |
|
Ответы с готовыми решениями:
112
Для чего нужны указатели?
Ссылки и указатели, для чего нужны те и другие? |
|
|
|
| 14.11.2011, 11:45 | |
|
Функция void Cleanup() как в моей проге.
Обнуляет все что было инициализировано при выходе из программы или при ее перезагрузке
0
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||
| 14.11.2011, 13:20 | ||
чтобы потом в каком-нибудь незнакомом коде разбираться
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14.11.2011, 15:03 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Добавлено через 2 минуты
Добавлено через 2 минуты Добавлено через 1 минуту Добавлено через 39 минут Добавлено через 1 минуту Добавлено через 1 минуту
}
Добавлено через 2 минуты Добавлено через 7 минут
Добавлено через 5 минут Добавлено через 3 минуты Добавлено через 6 минут Добавлено через 2 минуты Добавлено через 4 минуты Добавлено через 1 минуту Добавлено через 3 минуты Добавлено через 5 минут
0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
| 14.11.2011, 15:05 | |
|
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||||||||
| 14.11.2011, 15:26 | ||||||||||||
|
Добавлено через 7 минут
Добавлено через 2 минуты Добавлено через 3 минуты Добавлено через 3 минуты
0
|
||||||||||||
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|||||||
| 14.11.2011, 15:29 | |||||||
0
|
|||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 14.11.2011, 15:34 | |||
|
1. Все указатели объявить глобально. 2. Ни один не забыть при разработке самой функции. Так что это как раз почти гарантия утечек. Добавлено через 3 минуты
0
|
|||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 14.11.2011, 15:35 | |
|
2
|
|
| 14.11.2011, 18:18 | |
|
0
|
|
|
8 / 8 / 0
Регистрация: 05.11.2011
Сообщений: 81
|
|
| 14.11.2011, 18:23 | |
|
Можно программировать без указателей,как в Java,но это не даст полного понимания работы
компьютера.
0
|
|
|
Заблокирован
|
|||
| 14.11.2011, 23:58 | |||
|
Объект Б был уничтожен. Объект А ничего об этом не знает. Его указатель стал не_валидным. Объект А обратился к Б по указателю. БАБАХ! Держать указатель на объект не трудно. Трудно проконтролировать, валидны ли данные на которые указывает указатель. И тут только три варианта: 1. Либо нарушение инварианта модуля/класса. Вася и Петей написали свои части кода. А потом Бабах! И оба сидят в отладчике. 2. Превентивная защита. То есть, такая архитектура, при которой в принципе не случится такого, что бы данные по указателю стали не_валидными. Для этого и придумали всякие интеллектуальные указатели и прочую лабуду. Но программистам свойственно ошибаться, как и всем людям. И тогда БАБАХ, и он сидит в отладчике. 3. Система-валидатор, которая позволяет без внешнего контроля установить, валидны ли данные (например, первые несколько байт цели должны иметь четкую последовательность. Если не имеют - это не валидные данные) Ну обнаружит валидатор, что указатель не_валидный. А объекту А нужно обратится к объекту Б! Как могла случится такая ситуация, что объект А не может обратится к Б, если он должен это сделать по своей управляющей логике? Налицо какая то программная ошибка. И хотя бабаха не было, один хрен придётся опять сидеть с отладчиком. В любом случае фраза: Либо вовсе не тривиальная система, и обращение к объекту происходит далеко не когда угодно. А держатель указателя скорее всего сам же и контролирует время жизни объекта.
0
|
|||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
| 15.11.2011, 05:45 | ||||||
|
Добавлено через 3 минуты
0
|
||||||
|
Заблокирован
|
||||||
| 15.11.2011, 05:52 | ||||||
|
taras atavin
Ниже представленный код мало того, что прекрасно компилируется и работает. Так ещё и крушений не вызывает. (До поры, до времени). Этот код иллюстрирует как легко можно встрять и даже не заметить.
И все это делается только ради того, что бы А не угораздило обратится к уже убитому Б. А если архитектура проекта посложнее хэлло ворлд, и работают несколько человек, то все эти щекотливые вопросы становятся очень актуальными. /зы У меня 90% всех ошибок связано с указателями. Если что-то где то упало в рантайме, то скорее всего оно упало по вине некорректного использования указателя.
0
|
||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 15.11.2011, 06:00 | |||
|
0
|
|||
|
Заблокирован
|
|
| 15.11.2011, 06:02 | |
|
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 15.11.2011, 06:07 | |||
|
Добавлено через 2 минуты
0
|
|||
|
Заблокирован
|
||
| 15.11.2011, 06:12 | ||
|
Внутри проще хранить сами объекты. Указатель и нужен собственного говоря, для того, что бы знание об объекте передать куда то ещё - вызывающей стороне, или в вызываемую сторону. А голый указатель, оказавшийся "на другой стороне" становится потенциально опасным.
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||
| 15.11.2011, 06:22 | ||||
|
1. Перкрёстные на свой класс. 2. на подчинённые объекты. Иначе объект B не знает, где треубуется записать тот самый NULL. Добавлено через 2 минуты Добавлено через 4 минуты
0
|
||||
|
Заблокирован
|
|
| 15.11.2011, 06:25 | |
|
taras atavin, реальный пример: библиотека DevIL
Загружает картинку, а наружу выдаёт указатель на массив цветов пикселей этой картинки. Получив этот указатель себе в руки, можно делать с внутренними данными Девила все что угодно. Например, сделать им delete. Результат - крэш при де_инициализации Девила. Другой пример: Пользователь просит менеджера создать ему девайс. Менеджер создаёт девайс, а наружу (пользователю) в руки предоставляет ИНТЕРФЕЙСНЫЙ УКАЗАТЕЛЬ. Не указатель. А особый объект "интерфейсный указатель". С помощью которого пользователь сможет пользоваться внутренним объектом менеджера. Но не сможет его никак поломать. Зачем самому менеджеру хранить указатель на свои объекты - этого я понять не могу. Зачем хранить указатели, когда можно хранить сами объекты? Указатели нужны другим сторонам, а не владельцам. Но другим сторонам нельзя давать просто так указатели, потому что иначе считай инкапсуляция уже нарушена. Выдай наружу указатель на приватные данные, и можешь считать, что они стали публичными. Выдай наружу специализированный интерфейс - и считай, что проблема жизни и смерти объекта осталась проблемой владельца, и никого более.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||
| 15.11.2011, 06:39 | |||||||
|
Кстати, раз уж любишь такие указатели, то вот тебе ещё пример:
Добавлено через 2 минуты
0
|
|||||||
| 15.11.2011, 06:39 | |
|
Помогаю со студенческими работами здесь
80
Для чего нужны и зачем использовать smart-указатели? Что за драйвера такие, для чего они и нужны ли они вообще? С чего начать для понимание PHP
Понимание звуковой волны , да и вообще волн в целом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|