vc++2008 调用fprintf时出现 Microsoft visual studio C 运行时库 在 xx.exe中检测到一个异常

vc++2008 调用fprintf时出现 Microsoft visual studio C 运行时库 在 xx.exe中检测到一个错误
vc++2008 写txt文件,调试时时出现 Microsoft visual studio C 运行时库 在 xx.exe中检测到一个错误。中断后停在fprintf函数。不知是什么原因?代码如下:
 FILE *Myfp;
 char Ppath[256];
//  GetAppPath(Ppath,256);
 strcpy(Ppath,"c:\\log.txt");
if(Myfp != NULL)
{
 Myfp = fopen(Ppath ,"a+");
}
// err  = fopen_s( &pFile, "C:\\a.txt", "+r" );
fprintf(Myfp,"%s : :%s \n:",funName,ret);
 fclose(Myfp);
 Myfp =NULL;
------解决思路----------------------
funName和ret都是0结尾字符串的话貌似木有问题啊。
------解决思路----------------------
除非你Myfp = fopen(Ppath ,"a+");返回NULL。
------解决思路----------------------

FILE *Myfp;
 char Ppath[256];
//  GetAppPath(Ppath,256);
 strcpy(Ppath,"c:\\log.txt");

 Myfp = fopen(Ppath ,"a+");//无论如何都应该执行这句
if(Myfp != NULL) //正确打开了文件
{
   fprintf(Myfp,"%s : :%s \n:",funName,ret);
   fclose(Myfp);
   Myfp =NULL; 
}

------解决思路----------------------
楼上说的对,你首先要先打开文件,才能判断Myfp是否为空,按照你的代码,文件时无论如何也没被打开的,又如何去写,如何关闭??