Привет всем, я программирую под Win достаточно мало и использую для этого VS 2005. Программа которую я пишу целиком написана на C, и там есть некоторое количество проблем с выделением памяти. Нижеследующий код после повторного(акцент не на этом) своего вызова крэшит программу
Код | WCHAR *szFNameW; unsigned int size; size = MAX_PATH*sizeof(WCHAR); szFNameW = (WCHAR *)malloc(size);
|
Немного повозившись с дебаггером я определил, что ошибка вызвана функцией HeapAlloc, которая вызывается на 105 строке библиотеки malloc.c. Размер памяти необходимой для выделения - 556 байт. Глобальная переменная _lTotalAlloc равна 21669(из кучи видимо выделен 21Кб памяти). Валится программа стабильно в этом месте. Так же наблюдались проблемы с вызовом printf - так же вылетала программа и дебаггер показывал что корни уходят к выделению памяти. Ещё есть проблемы с вызовом free на конкретных указателях, но это уже может и не имеет непосредственного отношения к HeapAlloc. Если нужен код программы целиком - могу выложить. Она небольшая и сделана чисто в образовательных целях. Спасибо. |