Всем привет.
Народ вот с такой гадостью столкнулся. Смысл такой:
DWORD ThreadFun(void * arguments)
{
cObject * s = (cObject *) arguments
s->Method();
while(SomeCondition) {
...
}
ExitThread(0);
return 0;
}
int main()
{
...
cObject object;
cObject * o = & object;
CreateThread(..., (LPTHREAD_START_ROUTINE) ThreadFun, s, ...);
...
}
Но весь ужас ситуации в том, что как только отрабатывает первая строчка внутри
s->Method();
Вызывается деструктор cObject и вылетает error, что std::bad_alloc in memory ... .
Что тут не так и как это убить ?