【发布时间】:2013-07-12 22:08:04
【问题描述】:
我正在为一个类 (C LANGUAGE) 编写一个程序,这将是一个 APP 商店的菜单。在程序中的某个时刻,用户将没有足够的钱从菜单中购买任何东西,所以他需要向他的帐户添加钱,这是我在下面那部分的函数定义。当我运行我的程序时,它会编译并且一切正常,直到它到达下面的 switch 语句,然后程序崩溃但没有出现运行时错误,它说“它已经停止工作”。我以前从未发生过这种情况,我附上了错误消息的屏幕截图。请帮忙,谢谢。
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", 选择); --> 没有地址?是不是和选择?它的写入地址为零,这可能是编译器的第一个区域或类似操作系统使用的东西?。
-
变量为double deposit = 0;在这个函数中,我的教授要求我使用一个指针,这就是我使用 *depositPtr 作为参数的原因。该网站不让我发布图片,因为它说我需要 10 分的声誉......
-
非常感谢 huseyin tugrul buyukisik!!!!我正在疯狂地浏览这段代码,并没有注意到我错过了 &。非常感谢
标签: c crash switch-statement