Я не уверен, что это правильный способ сделать это. См. Мой код ниже. Я хочу иметь возможность передать список аргументов main, который затем будет храниться в другом массиве.C - Передача переменного количества аргументов в начало
Итак, я хочу начать программу с хотя бы одним аргументом ... или столько аргументов, сколько мне нравится. Я могу установить максимальное количество аргументов до 32.
Например.
./foo 3
Или
./foo 3 56 12 34 56 111 2222 33
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
int numbersEntered[argc];
if (argc <= 1){
printf("Not enough arguments entered\n");
exit(1);
}
printf("Arg count %i\n",argc-1);
for (i=1;i<argc;i++)
numbersEntered[i]=atoi(argv[i]);
for (i=1;i<argc;i++)
printf(" numbersEntered %i\n", numbersEntered[i]);
}
Выглядит хорошо, если ваш компилятор поддерживает массивы переменной длины. Почему вы беспокоитесь, что это может быть неправильным? – us2012
После написания ответа я озадачен, ваша программа уже делает именно то, что вы хотите, в чем вопрос? :-) –
Почему вы индексируете numbersEntered от 1 вместо 0? Вы оставляете numberEntered [0] uninitialised. – goji