//出现该警告的源程序(已修改)
#include<stdio.h>
int main()
{
FILE* fp;
errno_t err;
err = fopen_s(&fp, "test.dat", "r");
if (err != 0)
puts("文件打开失败");
else
printf("文件打开成功");
if (fp == NULL) //无该条件判断将会出现警告Warning C6387
return 0; //如果if条件成立,则return 语句生效,把0返回给主函数,即提前结束了程序
fclose(fp);
return 0;
}
这个警告的意思是,文件指针"fp"可能是空指针,对于一些函数来说,传入空指针是致命的(如free()释放内存函数)。所以,该警告旨在提醒你应在执行fclose()函数前,排除空指针传入函数的可能。因此,在fclose()前加上判断 if(fp == NULL) return 0; 如果文件指针为空指针,则返回0。