![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| GKosh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 27.12.2005 Репутация: нет Всего: нет |
Идея проста - определить убитый указатель, писал так:
Понятно, что если нулевые указатели в алгоритме в порядке вещей, то перехват постоянно возникающих исключений поставит производительность на колени. Ест ли какой-нибудь более приемлимый вариант решения этой же задачи, который мог бы применяться и тогда, когда убитые указатели попадаются в алгоритме очень часто? |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
В том виде, в котором ты хочешь переносимого решения нет. Но есть совершенно простой способ: перед началао выполнения твоего алгоритма обнуляй все переменные-указатели, тогда потом в функции тест(она кстати изначально вообще не правильно написана у тебя) делаешь проверку if( p_var ) и определяешь сразу "вкусность" указателя |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
используй smart pointer-ы
и с удалением меньше проблем будет -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Empirik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 28.10.2005 Где: Россия, Пермь Репутация: нет Всего: 1 |
Расскажи, пожалуйста, по больше об умных указателях. На сколько они удобны в использовании? Как они определяют, что пора очищать память на которую они указывают? --------------------
Постоянно удивляюсь человеческой фантазии напридумывают гаджетов |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Память освобождается в деструкторе. Если на один объект у тебя может несколько самрт-поинтеров, используй бустовские классы, там есть классы с подсчётом ссылок, а также классы для выделения памяти под массивы. (http://boost.org/libs/smart_ptr/smart_ptr.htm)
|
|||
|
||||
| MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
самая часто встречающаяся стратегия - подсчет ссылок вкратце
а теперь сделаем простой smart pointer
есть еще стратегия глубокого копирования, копирования при записи (COW), связывания ссылок, деструктивного копирования подробнее у Александреску -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |