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掉。