Помещение *argv[ ] в массив символов
Я пытаюсь взять аргументы, помещенные в командную строку, и поместить их в массив целых чисел, чтобы я мог выполнять вычисления с ними. Чтобы решить эту проблему, я беру аргументы, начинающиеся с argv[1] (мне не нужно./a.out), и помещаю их в массив символов, где я проверяю, является ли это цифрой. Если так, то я помещаю их в целочисленный массив. Моя проблема сейчас заключается в том, что я получаю ошибку шины. Мой код ниже. Любой данный совет с благодарностью. Благодарю.
Это мой вклад:
./a.out 2 3
и мой вывод:
Good
Input 1 is good
Bus error: 10
Код:*
int main (int argc, char *argv[ ] )
{
.... //declaration of variables
if (argc == 3) {
printf("Good\n");
}
else {
printf("Wrong amount of inputs\n");
exit(0);
}
for (i = 1; i < argc; i++) {
//length = strlen(argv[i]);
//theinputs[i] = malloc((length + 1) * (sizeof(char)));
strcpy(theinputs[i - 1], argv[i]);
if ( isdigit(*theinputs[i-1]) ) {
printf("Input %d is good\n", i);
}
else {
printf("One or more of your inputs is not an integer %s.\n", theinputs[i]);
//return -1; //Inputs are not being read correctly
exit(0);
}
numbers[i] = atoi(theinputs[i]);
}
for (i = 0; i < 2; i++) {
printf("%d\n", numbers[i]);
}