【C言語】
fclose(NULL)でSegmentation fault

free(NULL) ➡大丈夫  fclose(NULL) ➡落ちる

free(NULL)は大丈夫

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void OK_free(void){    
    void *p = malloc(100);
    if(p == NULL){
        perror(NULL);
        return  ;
    }
    strcpy(p,"");
    free(p);
    p = NULL ;  //2重free防止
    free(p);    
}
int main(void){
    OK_free();
}

free(NULL)は問題ありません。
free(NULL)を実行しても何も起きません。


fclose(NULL)はSegmentation fault

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void NG_fclose(void){
    char    buf[BUFSIZ];
    FILE *fp = fopen("/usr/include/stdio.h","r");
    if(fp == NULL){
        perror(NULL);
        return  ;
    }
    fgets(buf,BUFSIZ,fp);
    fclose(fp);
    fp = NULL;  //間違い
    fclose(fp);
}
int main(void){
    NG_fclose();
}

fclose(NULL)は問題があります。
多分Segmentation faultします。