#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個參數時應該打印「沒有足夠的參數」,但它給出了錯誤分段錯誤。c命令行參數
輸入:./a raju
預期輸出:not enough arguments
在檢查之前使用'argv [2]'是一個壞主意,我想......真的,你不能證明自己的代碼嗎(不是說瘋狂的格式化)嗎? –