Имеется следующий код: Код (Text): // wrapper for class function void Func() { if (ptrStatus) ptrStatus->Func(); } ... ... ... void StatusTable::Func() { ... } виснет на строке if (ptrStatus) причём указатель ptrStatus не нулевой, в нём лежит адрес, адрес его самого. Я так понимаю это this указатель. Была мысль, что объект на который указывает ptrStatus уничтожен, но указатель остался. Но нигде он явно не уничтожается... В чём может быть дело ? Спасибо !
Самая обычная рекурсия void Func() { if (ptrStatus) ptrStatus->Func(); //вот тут ты повторно вызываешь Func() } попробуй вначале функции вставить MessageBoxA(0, "abc", "abc",0); если под вынь пишешь тогда самому все станет понятно ))
> виснет на строке if (ptrStatus) Если ptrStatus - честный указатель, то на этой строке виснуть не может.
нееет, взгляни внимательно на код... вызывает она не сама себя, это тока wrapper... вызывается та func, что ниже по коду... метод класса уже.. void StatusTable::Func() <----- { ... } _DEN_ именно виснет... под gdb... он на ней останавливается и всё... а если не под отладчком, тада Exception возникает... я даже ставил DBGPRINT, перед и после, первый срабатывает, второй нет