为什么我的C程序崩溃了?

时间:2013-10-27 05:53:07

标签: c crash calculator

当我从msys命令行运行此程序时,它会打开一个名为calc.exe(程序名称)的窗口,其中包含以下错误: calc.exe遇到问题,需要关闭。对于给您带来的不便,我们深表歉意。

这是我的主要功能:

int main(int argc, char *argv[])
{
    int num1, num2, ans;

    hist_file_create();

    if (argc < 2 || argc > 2)
        kill("ERROR: Use: calc <operation_type>");

    char operation_type = argv[2][0];

    switch(operation_type)
    {
        // Addition
        case 'a':
            printf("Enter a number:\n");
            scanf("%d", &num1);
            printf("Enter a second number\n");
            scanf("%d", &num2);
            ans = num1 + num2;
            printf("%d + %d = %d", num1, num2, ans);
            break;

        // Operation type list
        case 'l':
           operation_type_list();
           break;

        default:
            kill("Invalid operation type. To see a list of recognised operation types, type l");
    }
    system("PAUSE");

}

我知道它仍然可能非常混乱,但是我知道我只是想让它工作,并在以后清理它。 您可能需要的任何其他信息。

1 个答案:

答案 0 :(得分:1)

此条件确保您有2个参数或程序存在     if(argc&lt; 2 || argc&gt; 2)         kill(“错误:使用:计算”);

然而,下一行是访问第三个参数    char operation_type = argv [2] [0];

哪个不存在。程序被杀了