【发布时间】:2017-06-26 19:08:31
【问题描述】:
#include <stdio.h>
#include <string.h>
int convert(char *str)
{
int i, number = 0;
for (i = 0; str[i] != '\0'; ++i) {
number = number * 10 + str[i] - '0';
}
return number;
}
int main(int argc, char *argv[])
{
int j;
int c = convert(argv[2]);
if (argc == 3) {
for (j = 0; j < c; j++) {
printf("Hello, %s!\n", argv[1]);
}
} else if (argc < 3) {
printf("Not Enough Arguments\n");
} else if (argc > 3) {
printf("Too Many Arguments\n");
}
return 0;
}
给出少于 3 个参数时出现分段错误。 在给出少于 3 个参数时,它应该打印“没有足够的参数”,但它会给出错误分段错误。
输入:./a raju
预期输出:not enough arguments
【问题讨论】:
-
在检查之前使用
argv[2]是个坏主意,我猜......真的,你不能校对自己的代码(不是说疯狂的格式)吗?
标签: c command-line command