Не используете сырые указатели? Использование shared_ptr
/ unique_ptr
или стандартных контейнеров или контейнеров для повышения ptr действительно уменьшит ваши проблемы new
/ delete
. Также пересмотрите свой дизайн и постарайтесь свести к минимуму паутину указателей между объектами, насколько это возможно. Используйте weak_ptr
, когда можете.
Но чтобы ответить на ваш вопрос более прямо: нет верного пути. Доступ к удаленному элементу является неопределенным поведением и, как таковой, чем угодно, является игрой. Ваш лучший выбор - отладка MS malloc или использование скажем valgrind или другого средства проверки памяти. Проблемы с кучей и памятью трудно отладить.
РЕДАКТИРОВАТЬ: Это неопределенное поведение, поэтому системы Linux снова могут или не могут получить segfault.
EDIT2: Согласно http://msdn.microsoft.com/en-us/library/2f7sy2e9%28v=vs.80%29.aspx вы определяете _DEBUG
в сочетании с использованием библиотеки CRT отладки для включения функций кучи отладки.
Изначально я не упоминал Purify из-за его стоимости, но в прошлом мне очень повезло с ним.