free 和 fclose

想到一个场景,具体代码如下

 

#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char *argv[])
{
    free(NULL);
    fclose(NULL);
    return 0;
}

free(NULL)指针,会直接返回

free(ptr),并不会将ptr置为NULL(函数传值语义),如果ptr不置为NULL,再次调用free(ptr)就会core掉。

 

fclose关闭一个NULL指针,会直接core掉。

posted @ 2014-12-03 10:50  westfly  阅读(662)  评论(0编辑  收藏  举报