Подскажите какую то доступную онлайн литературу.В которой были бы описано как правильно выделять память в куче(и в мультипоточных приложениях то же) ,какие бывают причины повреждения стека или кучи,как выявить повреждение кучи.Вообщем на такую вот тему.
http://www.codersource.net/c++_dynamic_memory_allocation.aspx - english, внизу еще пара ссылок на мемори корапшн, тобиж повреждение .. вообще такая шняга в книгах по языку должна быть..
http://wasm.ru/publist.php?list=21#series_10 еще помню очупенную статью находил типа "организация памяти в win 3.11" найти не могу...
В многопоточных приложениях выделение дин. памяти ничем не отличается от выделения в однопоточном приложении, исключая то что надо использовать синхронизацию(семафоры, мьютексы, условные переменные(вроде так называется=) ) что бы защитится от повреждения данных. Вот и копай в эту сторону)
Если есть потоки связанные с ГУИ и обращяющиеся к глобальным переменным выделенным в куче,то чаще всего такая ситуация заканчивается повреждением содержимого кучи
Как я написал выше в такой ситуацие используются мьютексы, которые блокируют данные и разрешают доступ только одному потоку который их захватил в это время. Можешь погуглить на эту тему в инете море инфы
Читай про "критические секции"... таже помню некоторые стандартные API функции типа LocalLock (http://www.podgoretsky.com/ftp/Docs/Delphi/Memory/old/LocalLock.html - там внизу есть ссылки очень полезные на доки...) как сказал razb многопоточность надо синхронизировать. Читай про EVENT-ты (CreateEvent, SetEvent, WaitForSingleObject)