gcc 4.4.4 c89 valgrind 3.5.0。
当我使用文件指针打开文件时检测到泄漏。
==17681== in use at exit: 352 bytes in 1 blocks
==17681== total heap usage: 1 allocs, 0 frees, 352 bytes allocated
==17681==
==17681== 352 bytes in 1 blocks are still reachable in loss record 1 of 1
==17681== at 0x4005BDC: malloc (vg_replace_malloc.c:195)
==17681== by 0xAAD67E: __fopen_internal (iofopen.c:76)
==17681== by 0xAAD74B: fopen@@GLIBC_2.1 (iofopen.c:107)
它指向的代码行是这个 fopen:
FILE *fp = NULL;
fp = fopen("input.txt", "r");
if(fp == NULL) {
fprintf(stderr, "Failed to open file [ %s ]\n", strerror(errno));
exit(1);
}
可能是 fopen 函数正在分配内存而不是释放它?我怎样才能释放这个内存?
非常感谢您的任何建议,
最佳答案
你没有关闭你的文件*。
关于c - 使用 fopen 时使用 valgrind 检测到泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3594382/