| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Проверить содержимое указателя |
| Автор: GKosh 27.5.2006, 07:43 | ||
Идея проста - определить убитый указатель, писал так:
Понятно, что если нулевые указатели в алгоритме в порядке вещей, то перехват постоянно возникающих исключений поставит производительность на колени. Ест ли какой-нибудь более приемлимый вариант решения этой же задачи, который мог бы применяться и тогда, когда убитые указатели попадаются в алгоритме очень часто? |
| Автор: MAKCim 27.5.2006, 08:46 |
| используй smart pointer-ы и с удалением меньше проблем будет |
| Автор: Empirik 27.5.2006, 22:11 | ||
Расскажи, пожалуйста, по больше об умных указателях. На сколько они удобны в использовании? Как они определяют, что пора очищать память на которую они указывают? |
| Автор: Любитель 28.5.2006, 00:32 |
| Память освобождается в деструкторе. Если на один объект у тебя может несколько самрт-поинтеров, используй бустовские классы, там есть классы с подсчётом ссылок, а также классы для выделения памяти под массивы. (http://boost.org/libs/smart_ptr/smart_ptr.htm) |
| Автор: MAKCim 28.5.2006, 09:27 | ||||||
самая часто встречающаяся стратегия - подсчет ссылок вкратце
а теперь сделаем простой smart pointer
есть еще стратегия глубокого копирования, копирования при записи (COW), связывания ссылок, деструктивного копирования подробнее у Александреску |