Assume I have the following program:
#include <stdio.h>
int main () {
FILE * pFile;
pFile = fopen ("myfile.txt","r");
fclose (pFile);
//This never happens: free(pFile)
return 0;
}
I have never seen a program which does free(pFile)
after closing the file handle. Why is that?
I know that since fclose()
doesn't receive a pointer to pFile
, then it doesn't actually free the pointer's memory. I was under the impression that pointers should always have their memory freed if they are pointing to dynamically allocated memory. Why doesn't anyone free()
the file pointer?