2013-09-28 123 views
1

這個程序不斷崩潰,而不是讓我輸入參數,爲什麼?我不明白爲什麼這個程序不斷崩潰

#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; 
} 

我正在使用codeblocks。但我也試圖用Notepad ++來運行它。編譯完成後,當我運行它時,它只會崩潰:Name.exe已停止工作。它不應該讓我在命令行上輸入參數嗎?

+0

它在哪一行崩潰? –

+0

它以什麼方式崩潰?你有什麼調試信息? – mfrankli

+5

如果您在命令行中輸入零個或一個參數,您可能會崩潰。如果你的第二個參數比256字節長,你可能會崩潰。 – atk

回答

7

在輸入參數之前,程序不可能崩潰,因爲在程序啓動之前需要輸入參數之前的參數

那就是:你不喜歡這個運行程序:

Program.exe 
12 
hello 

你需要這樣運行:

Program.exe 12 hello 

如果您使用的是IDE(你可能做的) ,您需要配置IDE以添加參數。如何做到這一點取決於你使用哪個IDE。我假設你使用Visual Studio - 下面是如何在Visual Studio中執行它:https://stackoverflow.com/a/3697320/794380