опубликован 19-01-2002 17:52 MSK
Я пишу на MS Visual C++ 6.0
Моя программа использует несколько потоков создаются они следующим образом:
m_pthrMain = AfxBeginThread(MainScanThreadProc, NULL, THREAD_PRIORITY_NORMAL);Данный поток использует большое кол-во памяти сосредоточенной в CString.
Все CString создаются на стеке в функциях потока.
Далее из другого потока произвожу следующий вызов:
::TerminateThread(pDoc->m_pthrMain, 0);
При этом, сама программа не завершается.
Будет ли после этого освобождена память которую использовал поток?
(Важное замечание: в функциях потока не используются опреаторы типа new и функции типа malloc. Используются только различные функции CString: (CString str("aaaa"); str += 2 Mb;)...)
После завершения программы отладчик сообщяет:
Detected memory leaks!
Dumping objects ->
(много всяких строк ;-)
Если память не освобождается то как этого избежать?
Заранее спасибо!