Как управлять памятью в многопоточном приложении на WIN API?
Собственно есть приложение на Си, в нем используются такие нехорошие вещи как malloc, realloc, memset. Все работает хорошо до тех пор пока не запускается поток, после этого программа крешится. Поток создается через CreateThread, я не хочу использовать CLR в коде. Вопрос как управлять памятью используя чисто Си функции и Win API ?
UPD Поток крешиться из за использования функций работы с памятью стандартной библиотеки Си, повреждается куча, эксепшн в функции _heap_alloc();
Создание потока
ThreadID = CreateThread(0, NULL,
(LPTHREAD_START_ROUTINE)&ThreadFunction,
&DataForThreadFunction, 0, &ThreadIdentifier);
DataForThreadFunction
- выделенна через malloc
. Она нигде не освобождается.
Внутри ThreadFunction
нет выделения памяти или освобождения памяти.
Без запуска потока приложение не падает. Память не течет.