我正在編寫一個類(C語言)的程序,它將成爲APP商店的菜單。在程序中的某個時刻,用戶將沒有足夠的錢從菜單上購買任何東西,因此他需要向他的賬戶添加資金,這是我在下面對該部分的函數定義。當我運行我的程序時,它編譯並且一切正常,直到它到達下面的switch語句,然後程序崩潰但沒有運行時錯誤,它說「它已停止工作」。這從來沒有發生過,我附上了錯誤信息的截圖。請幫忙,謝謝。程序在開關語句C語言中停止工作
void moneyChoice(double *depositPtr, double appCost)
{
int choice = 0;
printf("\n\nPlease credit your money by selection:\
\n1 -- $15.00\
\n2 -- $10.00\
\n3 -- $5.00\
\n4 -- $2.00\
\n5 -- $1.00");
printf("\nDeposit amount: ");
scanf("%d", choice);
switch (choice)
{
case 1:
*depositPtr += 15.00;
break;
case 2:
*depositPtr += 10.00;
break;
case 3:
*depositPtr += 5.00;
break;
case 4:
*depositPtr += 2.00;
break;
case 5:
*depositPtr += 1.00;
break;
}
}
您是否嘗試過實際調試程序? –
scanf(「%d」,choice); - >沒有地址? wassnt它和選擇?它的寫作地址爲零,可能是編譯器的第一個區域或類似OS使用的東西。 –
該變量是double deposit = 0;在這個函數中,我需要使用教授的指針,這就是爲什麼我使用* depositPtr作爲參數的原因。該網站不讓我張貼圖片,因爲它說我需要十分的信譽得分.... – user2487982