2014-04-04 55 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);