|
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
|
|
Понимание для чего вообще нужны указатели?12.11.2011, 20:12. Показов 34778. Ответов 112
Метки нет (Все метки)
Сейчас будет чистый мой тупняк. Слабонервным дальше не читать. Итак, для чего вообще нужны указатели? Я вот не пойму, зачем их надо было вообще придумывать??? Не понимаю их конкретной пользы, смысла. Кто-нибудь может по-человечески объяснить?
1
|
|
| 12.11.2011, 20:12 | |
|
Ответы с готовыми решениями:
112
Для чего нужны указатели?
Ссылки и указатели, для чего нужны те и другие? |
|
|
|
| 14.11.2011, 11:45 | |
|
Функция void Cleanup() как в моей проге.
Обнуляет все что было инициализировано при выходе из программы или при ее перезагрузке
0
|
|
|
4866 / 3287 / 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 | |
|
Для чего нужны и зачем использовать smart-указатели? Что за драйвера такие, для чего они и нужны ли они вообще? С чего начать для понимание PHP
Понимание звуковой волны , да и вообще волн в целом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|