2013-02-04 46 views
0

我是C新手,遇到以下問題:我想將參數保存爲整數。之前寫過這樣的代碼:C atoi中的Segmantation故障

int main(int argc, char argv[]) { 
    if(argc > 1) { 
     int test = atoi(argv[1]); 
     printf("Input: %i\n", test); 
    } 
} 

但是我總是在運行時出現分段錯誤錯誤。 什麼問題?

+0

'char * argv []'你應該寫 – Dariusz

+0

正如你提到的問題是你的主簽名。 您應該檢查編譯器錯誤xD您可能正在破壞您的程序的舊版本,我認爲您的代碼應該在編譯時給您一個錯誤。儘管如此,仍然要在激活所有警告的情況下編譯代碼(例如,gnu c compiler:gcc -Wall)。 – nms

回答

0

而不是char argv []寫char ** argv或char * argv []。

1

您正在向main傳遞一個字符串。這樣argv [1]返回單個字符。 嘗試

int main(int argc, char* argv[]) { 

傳遞字符串參數數組。