PDA

Просмотр полной версии : Что бы почитать про выделение памяти


_nic
09.04.2009, 02:47
Подскажите какую то доступную онлайн литературу.В которой были бы описано как правильно выделять память в куче(и в мультипоточных приложениях то же) ,какие бывают причины повреждения стека или кучи,как выявить повреждение кучи.Вообщем на такую вот тему.

LEE_ROY
09.04.2009, 02:57
http://www.codersource.net/c++_dynamic_memory_allocation.aspx - english, внизу еще пара ссылок на мемори корапшн, тобиж повреждение .. вообще такая шняга в книгах по языку должна быть..

_nic
09.04.2009, 11:05
http://www.codersource.net/c++_dynamic_memory_allocation.aspx - english, внизу еще пара ссылок на мемори корапшн, тобиж повреждение .. вообще такая шняга в книгах по языку должна быть..
А по серьезней есть литература?

Gar|k
09.04.2009, 12:02
http://wasm.ru/publist.php?list=21#series_10

еще помню очупенную статью находил типа "организация памяти в win 3.11" найти не могу...

razb
09.04.2009, 12:53
мультипоточных приложениях
В многопоточных приложениях выделение дин. памяти ничем не отличается от выделения в однопоточном приложении, исключая то что надо использовать синхронизацию(семафоры, мьютексы, условные переменные(вроде так называется=) ) что бы защитится от повреждения данных.
Вот и копай в эту сторону)

_nic
09.04.2009, 13:03
В многопоточных приложениях выделение дин. памяти ничем не отличается от выделения в однопоточном приложении, исключая то что надо использовать синхронизацию(семафоры, мьютексы, условные переменные(вроде так называется=) ) что бы защитится от повреждения данных.
Вот и копай в эту сторону)
Если есть потоки связанные с ГУИ и обращяющиеся к глобальным переменным выделенным в куче,то чаще всего такая ситуация заканчивается повреждением содержимого кучи :(

razb
09.04.2009, 13:37
Если есть потоки связанные с ГУИ и обращяющиеся к глобальным переменным выделенным в куче,то чаще всего такая ситуация заканчивается повреждением содержимого кучи
Как я написал выше в такой ситуацие используются мьютексы, которые блокируют данные и разрешают доступ только одному потоку который их захватил в это время. Можешь погуглить на эту тему в инете море инфы

Gar|k
09.04.2009, 18:29
Читай про "критические секции"... таже помню некоторые стандартные API функции типа LocalLock (http://www.podgoretsky.com/ftp/Docs/Delphi/Memory/old/LocalLock.html - там внизу есть ссылки очень полезные на доки...)

как сказал razb многопоточность надо синхронизировать. Читай про EVENT-ты (CreateEvent, SetEvent, WaitForSingleObject)

_nic
09.04.2009, 22:50
Синхронизация к сожалению не всегда помагает.