gcc 4.4.4 c89 valgrind 3.5.0.fuite détectée en utilisant valgrind lors de l'utilisation de fopen
Je détecte une fuite lorsque j'ouvre un fichier à l'aide d'un pointeur de fichier.
==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: [email protected]@GLIBC_2.1 (iofopen.c:107)
La ligne de code il pointe est ce fopen:
FILE *fp = NULL;
fp = fopen("input.txt", "r");
if(fp == NULL) {
fprintf(stderr, "Failed to open file [ %s ]\n", strerror(errno));
exit(1);
}
pourrait-il que la fonction fopen alloue la mémoire et non la libérer? Comment puis-je libérer cette mémoire?
Un grand merci pour toutes les suggestions,
Oui, vous avez raison. J'ai oublié d'appeler gratuitement. – ant2009
Vous ** n'appelez pas 'free' sur un' FILE * '. Vous appelez 'fclose'. –
Je vois exactement la même erreur malgré l'utilisation de 'fclose'. –