|
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
|
|
Понимание для чего вообще нужны указатели?12.11.2011, 20:12. Показов 34511. Ответов 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
Понимание звуковой волны , да и вообще волн в целом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|