Не уверен, насколько это будет полезно, но я все равно его выброшу.
p указывает на адрес obj.Нарушение доступа, скорее всего, связано с тем, что p обращается к obj вне области (таким образом, obj удаляется из стека), или вы топаете память obj.Это причина, почему obj не может быть оценен отладчиком.Я бы порекомендовал пару вещей, чтобы помочь с проблемой.
0) Зарегистрируйте область памяти, на которую указывает p
(используйте %p
в printf/_snprintf
), и укажите область памяти в ключевых точках в жизненном цикле obj
s.
1) getсамостоятельно adplus
(часть средств отладки для Windows) и запустите его в режиме сбоя для вашего процесса.
2) Отладьте вывод adplus с помощью вашего любимого отладчика (мой в WinDbg).
Если хужеВ худшем случае включите параметры границ страницы памяти в окнах, которые должны вызвать сбой программы при попытке доступа к защищенным ячейкам памяти.Конечно, предложение GrayDad предотвратит сбой, остановив доступ к нулевому указателю ... если только объект obj не поврежден, в этом случае указатель просто указывает на испорченную память, и он все равно будет падать.Попробуйте сначала его решение.:)