Здравствуйте, Аноним, Вы писали:
А>Всем привет.
А>Народ вот с такой гадостью столкнулся. Смысл такой:
А>А>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 ... .
А>Что тут не так и как это убить ?
Так поток выполняется одновременно с потоком в котором main работает. Если в том потоке удалить s до того как ThreadFun завершит исполнение, то — s удалится, было бы странно еслиб не удалялся

Соответственно надо пересматривать логику удаления s.
ExitThread кстати не нужен.