У меня есть код здесь. Я использую malloc для выделения памяти для моей структуры. Одному из членов этой структуры присваивается строка с использованием StrDup внутри цикла while, хотя другим членам не нужно изменять их значения. Теперь, когда я использую StrDup, мне нужно очистить память, иначе будет утечка памяти, но очистка памяти исказит мою структуру malloc. Что мне делать? Заранее спасибо.Как использовать Malloc и StrDup вместе, когда StrDup находится в цикле while?
do
{
if(pURL == NULL)
break ;
pData->URL = StrDupA(pURL) ;
}while(pURL != NULL) ;
C++? 'Strdup'? 'Malloc'? Этот парень нуждается в помощи, быстро! – Xeo
Ваш код очень запутан. Вопрос, который вы задаете, включает функцию «MyThreadProc», которую вы не вызываете. Кажется, что имена указывают на то, что функция выполняется в другом потоке, и вы также, похоже, выполняете некоторую синхронизацию, но то, что действительно происходит, сложно сказать. Во всяком случае, вы можете использовать две разные схемы распределения памяти ('malloc' и' LocalAlloc'), но почему бы вам просто не придерживаться только одного из них? –
MyThreadProc вызывается непрерывно. Пожалуйста, посмотрите комментарий ниже функции StrDupA. Я знаю, что происходит не так. Неправильно: Malloc структуры, а затем инициализирует элемент структуры с помощью StrDupA, а затем FreeAlloc - память. Это как-то мешает структуре mallocated memory. Можете ли вы сказать мне правильную процедуру освобождения памяти, выделенной StrDupA в этом случае? – Abhineet