2013-02-04 44 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[]) { 

传递字符串参数数组。