C 转换';整数字符串';到整数数组

C 转换';整数字符串';到整数数组,c,arrays,atoi,C,Arrays,Atoi,我试图将一个整数数组传入我的程序。有没有更好的方法将其转换为整数?我当前收到一个错误:“可变大小的对象可能未初始化” (i=0;i

我试图将一个整数数组传入我的程序。有没有更好的方法将其转换为整数?我当前收到一个错误:“可变大小的对象可能未初始化”

(i=0;i { int arr[i]=atoi(argv[i]); }
假设
argc
argv
是传递给main的参数,
argv[0]
不太可能是要转换为整数的对象
argv[0]
通常包含程序名

您的代码段正在声明循环体的本地数组。您可能希望在循环体外部定义一个数组,并希望将其指定给循环体中的各个数组元素

int arr[argc];
for(i = 1; i < argc; i++)
{
    arr[i] = atoi(argv[i]);
}
int-arr[argc];
对于(i=1;i
每次循环时,您都在声明数组
arr

按以下方式更改循环:

#include<stdio.h>
#include<stdlib.h>

int main(int argc, char *argv[])
{

    int arr[argc];
    int i=0;


    for(i = 0; i < argc-1; i++)
    {
       arr[i] = atoi(argv[i+1]);
       printf("arr[%d] = %d\n",i,arr[i]);
    }

    return 0;
}

我忘了第一个参数是程序名。解决了的!谢谢
#include<stdio.h>
#include<stdlib.h>

int main(int argc, char *argv[])
{

    int arr[argc];
    int i=0;


    for(i = 0; i < argc-1; i++)
    {
       arr[i] = atoi(argv[i+1]);
       printf("arr[%d] = %d\n",i,arr[i]);
    }

    return 0;
}
Sukhvir@Sukhvir-PC ~
$ gcc -Werror -Wall -g -o test test.c

Sukhvir@Sukhvir-PC ~
$ ./test 3 4 5
arr[0] = 3
arr[1] = 4
arr[2] = 5