我有一段代码给了我一个错误。File
指针引发NULL
错误,尽管它已正确声明。
int PySchFee(Acc *py_User)
{
FILE *py_Fp;
int acn_Num,sch_Id;
float amnt=0;
system("cls");
/* printf("Please enter Account Numbern");
scanf("%d",&acn_Num);
printf("Please enter School Id Numbern");
scanf("%d",&sch_Id);*/
printf("Please enter Amount to payn");
scanf("%f",&amnt);
if ((py_User->bal-amnt)>=1000)
{
py_User->bal= py_User->bal-amnt;
AppCharge(py_User);
Rcrd_Write(py_Fp,py_User,NULL);
Svetyp(py_User,amnt,py_Sch_Fee);
fclose(py_Fp);
return 1;
}
else
{
fclose(py_Fp);
Error(broke);
return 0;
}
}
你永远不会为py_Fp
分配任何东西,因此它包含垃圾,因此崩溃。
你必须写一些类似的东西
py_Fp = fopen("myfile", "w") ;
在打电话Rcrd_Write
之前
你在初始化之前正在使用py_Fp
,你应该在实际使用它之前添加一个像py_Fp = fopen(...);
这样的语句,比如Rcrd_Write(py_Fp,py_User,NULL);
。