0

私は C で小さな宿題プログラムに取り組んでいますが、非常に珍しい問題に遭遇しました。Visual Studio 2012 を使用してこれを C でコーディングしていました。プログラムはエラーなしでコンパイルされ、例外でクラッシュする特定の段階まで cmd でも実行されます。プログラムのロジックは無視してください。エラー自体に焦点を当てるために一部を切り取っています。これについて何か助けていただければ幸いです。ありがとう!

プログラムは次のとおりです。

#include <stdio.h>
#include <math.h>

int main( void )
{
    int menuinput;
    int austinHour, austinMinute;
    int irishHour, irishMinute;
        printf("Insert a Number from 1-11 to select menu option: ");
        scanf_s("%d",&menuinput);
        switch(menuinput)
        {
            case 1:
            { 
                irishHour=0;
                irishMinute=0;
                austinHour=0;
                austinMinute =0; 
                printf("Enter Austin time: ");
                scanf_s("%d %d",austinHour,austinMinute);
                irishHour = (austinHour + 61);
                printf("%d %d",irishHour, austinMinute);
            }
                }

プログラムを実行しようとすると、次のエラーが表示されます。

First-chance exception at 0x62ACD745 (msvcr110d.dll) in Lab2.exe: 0xC0000005: Access violation writing location 0x00000000.

If there is a handler for this exception, the program may be safely continued.
4

2 に答える 2

3

入力ミスがあります。引数のアドレスを に渡しませんでしたscanf:

 printf("Enter Austin time: ");
 scanf_s("%d %d",&austinHour,&austinMinute);
                 ^^          ^^

そして、scanf を最初に使用したときに正しく入力したため、これはタイプミスだと言います。

scanf_s("%d",&menuinput);
于 2013-01-28T07:16:44.290 に答える
0

Alok Save の回答に加えて、scanf の使用によって不可解な動作障害が発生していないかどうか疑問に思っています。考慮すべきいくつかの質問を用意しました。マニュアルが必要な場合は、この scanf manualで回答を見つけることができます。

  1. int x = scanf("%d %d", &foo, &bar);「123 こんにちは」と入力すると、x は何になりますか?
  2. バーの値を説明するのにどの単語を使用しますか?
  3. getchar() によって返されると予想される文字はどれですか?
  4. do { x = scanf("%d", &bar); printf("x: %d\n", x); } while (x == 0);「hello」がまだ最後の変換失敗からストリームに残っていることを考えると、このコードから何が期待できますか?
  5. int y = scanf("%d", &foo);scanf が何かを foo に入れる前に EOF に遭遇した場合、y が正であると期待できますか? Windows では CTRL+Z、Linux では CTRL+D を押すと、EOF を stdin に送信できます。
  6. int z = scanf("%d %d", &foo, &bar);scanf が foo と bar の 2 つの変数に値を正常に割り当てたと仮定すると、z はどうなるでしょうか?
于 2013-01-28T08:00:15.720 に答える