2014-04-04 46 views
0

我有一段代码给我一个错误。 File指针抛出NULL错误,虽然它被正确声明。错误的文件初始化C

int PySchFee(Acc *py_User) 
{ 
    FILE *py_Fp; 
    int acn_Num,sch_Id; 
    float amnt=0; 

    system("cls"); 
    /* printf("Please enter Account Number\n"); 
    scanf("%d",&acn_Num); 
    printf("Please enter School Id Number\n"); 
    scanf("%d",&sch_Id);*/ 
    printf("Please enter Amount to pay\n"); 
    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; 
    } 
} 
+1

之前,您似乎没有被调用任何地方的fopen? –

回答

1

你永远不会分配任何东西给py_Fp,因此它包含垃圾,从而导致崩溃。

你必须写像

py_Fp = fopen("myfile", "w") ; 

调用​​

+0

感谢你,* facepalm * – user2861799

0

您正在使用py_Fp初始化它之前,你应该添加如下语句py_Fp = fopen(...);之前,你实际使用它,比如Rcrd_Write(py_Fp,py_User,NULL);