2016-12-02 98 views
0

我已经分离出这是给我的问题的代码段:程序无法运行。编译和运行正常,但如果我输入一个数字,它只是崩溃

int i; 

printf("Hit [1] to begin"); 
scanf("%d", i); 

if (i == 1) 
    printf("The program will now execute"); 
else 
    printf("Error.") 

每当我试图编译程序,我没有得到任何警告或错误,但是当我在CMD中运行它并输入1来运行我的程序时,会弹出一个窗口,说程序停止工作,并自动退出该任务。

任何帮助将不胜感激。

+0

为什么你有两个开放的括号和没有紧靠的括号? –

+3

您应该查看[适当的C格式化](// prohackr112.tk/r/properties-formatting)。或者学习如何[彻底模糊你的代码](// prohackr112.tk/r/proper-c-obfuscation)。 –

回答

3

在尝试清除所有编译器警告之前,请参阅scanf语法。如果你清楚你可能不会遇到这种情况。

错误scanf("%d", i);

解决方案scanf("%d", &i);你需要使用&变量i用于提供地址。

这是它因为地址问题而崩溃的原因。

+0

我很快注意到编译器警告会立即发现。 –

+0

非常感谢!你救了我! –

+0

谢谢@MichaelDorgan –

相关问题