У меня есть приложение, которое используется для изменения содержимого PDF-файла. После внесения необходимых изменений я сохраняю файл и покидаю приложение. Во время этого процесса я хотел бы очистить память, которая была назначена PDF-файлу. Код указан ниже:
for (i32 i = 0; i < job_state->PDF_IList_len; i++) {
if(IList[i].PIL_ImageData.PDH_DataPtr.PDH_PathName)
free (IList[i].PIL_ImageData.PDH_DataPtr.PDH_PathName);
if(IList[i].PIL_DependentImages)
free (IList[i].PIL_DependentImages);
}
job_state->PDF_ImageList = NULL;
job_state->PDF_context = NULL;
free (IList);
job_structure - это структура данных для сохранения информации о файле.
PDH_Pathname
- это временный каталог, в котором хранится информация о pdf.
Мое приложение всегда падает на
free (IList[i].PIL_ImageData.PDH_DataPtr.PDH_PathName);
Я заметил, что всякий раз, когда происходит сбой, значение free (IList[i].PIL_ImageData.PDH_DataPtr.PDH_PathName)
не может быть оценено (так говорит отладчик).
Если цикл for закомментирован, сбоя не наблюдается. Пожалуйста, дайте мне знать, в чем может быть проблема.