2016-12-02 95 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 –

相關問題