我无法理解为什么这个程序不断崩溃

时间:2013-09-28 22:54:53

标签: c

这个程序一直在崩溃而不是让我输入参数,为什么?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, const char* argv[]) {
    int shift = atoi(argv[1]);
    char message[256];
    strcpy(message, argv[2]);
    int i;

    for (i = 0; i < strlen(message); i++) {
        printf("%c", message[i] + shift);
    }
    putchar('\n');

    return 0;
}

我正在使用代码块。但我也尝试用Notepad ++运行它。在我编译它之后,当我运行它时它只是崩溃:Name.exe已经停止工作。它不应该要求我在命令行输入参数吗?

1 个答案:

答案 0 :(得分:7)

在输入参数之前,程序不可能崩溃,因为您需要在程序启动之前输入参数

那就是:你没有像这样运行你的程序:

Program.exe
12
hello

你需要像这样运行它:

Program.exe 12 hello

如果您使用的是IDE(可能),则需要配置IDE以添加参数。如何做到这取决于您使用的IDE。我假设您使用Visual Studio - 以下是如何在Visual Studio中执行此操作:https://stackoverflow.com/a/3697320/794380