Просмотр полной версии : Что бы почитать про выделение памяти
Подскажите какую то доступную онлайн литературу.В которой были бы описано как правильно выделять память в куче(и в мультипоточных приложениях то же) ,какие бывают причины повреждения стека или кучи,как выявить повреждение кучи.Вообщем на такую вот тему.
http://www.codersource.net/c++_dynamic_memory_allocation.aspx - english, внизу еще пара ссылок на мемори корапшн, тобиж повреждение .. вообще такая шняга в книгах по языку должна быть..
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)
Синхронизация к сожалению не всегда помагает.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot