我有一个程序从命令行读取一个参数并对其执行某些操作.我正在使用argv和argc.当我未能将参数传递给程序时,它就会出现段错误.我已经尝试检查argc是否不是某个值,然后打印出值,但它仍然是段错误.这是有问题的代码.请注意,它在传递单个参数时按预期工作.这是有问题的代码:
int main(int argc, char *argv[])
{
int numTimes = atoi(argv[1]); //converts content of argv[1] into integer
if(argc != 2)
{
printf("Enter a valid integer.");
}
Run Code Online (Sandbox Code Playgroud)
在尝试访问特定元素之前,只需检查参数的数量.像这样的东西:
int main(int argc, char *argv[])
{
if(argc < 2)
{
printf("Enter a valid integer.");
return 0;
}
int numTimes = atoi(argv[1]); // now we're sure to have at least 1 argument passed
// ...
}
Run Code Online (Sandbox Code Playgroud)