libxls:xls_open()会在超过一定数量的加载文件时出现问题

我正在使用libxls库来读取C语言的.xls文件。 我想加载大约40个Excel文件。
但是,当我超过12个文件的Function xls_open()与Windows的以下消息崩溃: "segmentation default" 。 当我只加载12个文件,它工作正常。

任何人都可以告诉我该库支持的内存中的文件的最大数量?

我通过调用xls_close()来closures每个打开的文件。 这个函数似乎释放所有的内存,在这里它的代码:

 #define xls_close xls_close_WB void xls_close_WB(xlsWorkBook* pWB) { OLE2* ole; verbose ("xls_close"); if(!pWB) return; // OLE first ole=pWB->olestr->ole; ole2_fclose(pWB->olestr); ole2_close(ole); // WorkBook free(pWB->charset); // Sheets { DWORD i; for(i=0; i<pWB->sheets.count; ++i) { free(pWB->sheets.sheet[i].name); } free(pWB->sheets.sheet); } // SST { DWORD i; for(i=0; i<pWB->sst.count; ++i) { free(pWB->sst.string[i].str); } free(pWB->sst.string); } // xfs { free(pWB->xfs.xf); } // fonts { DWORD i; for(i=0; i<pWB->fonts.count; ++i) { free(pWB->fonts.font[i].name); } free(pWB->fonts.font); } // formats { DWORD i; for(i=0; i<pWB->formats.count; ++i) { free(pWB->formats.format[i].value); } free(pWB->formats.format); } // buffers if(pWB->summary) free(pWB->summary); if(pWB->docSummary) free(pWB->docSummary); // TODO - free other dynamically allocated objects like string table?? free(pWB); }