【发布时间】:2011-02-17 08:11:06
【问题描述】:
每当我在最后使用fclose(outputFile); 运行我的程序时,都会出现错误。 glibc 检测到...损坏的双链表
不过,令人困惑的是,我在它的正上方有fclose(inputFile);,它工作正常。有什么建议吗?
FILE* inputFile = fopen(fileName, "r");
if (inputFile == NULL)
{
printf("inputFile did not open correctly.\n");
exit(0);
}
FILE* outputFile = fopen("output.txt", "wb");
if (outputFile == NULL)
{
printf("outputFile did not open correctly.\n");
exit(0);
}
/* ... read in inputFile ... */
/* ... some fprintf's to outputFile ... */
fclose(inputFile);
fclose(outputFile);
【问题讨论】:
-
显然问题出在您未显示的代码中。这使得提供帮助有点困难。
-
这是一个单独的问题...但是您的代码中有泄漏;打开 outputFile 失败时,您忘记关闭 inputFile。不要忘记在 if(outputFile==NULL) 中调用 fclose(inputFile)。
-
Marcelo,这对我来说并不明显,否则我会把其余的代码放在那里......谢谢迈克尔,我没想到。