我想將一個整數數組傳入我的程序。有沒有更好的方法將其轉換爲整數?目前,我得到一個錯誤:「變量大小的物體可能無法初始化」將「整數字符串」轉換爲整數數組
for(i = 0; i < argc; i++)
{
int arr[i] = atoi(argv[i]);
}
我想將一個整數數組傳入我的程序。有沒有更好的方法將其轉換爲整數?目前,我得到一個錯誤:「變量大小的物體可能無法初始化」將「整數字符串」轉換爲整數數組
for(i = 0; i < argc; i++)
{
int arr[i] = atoi(argv[i]);
}
假設argc
和argv
是傳遞到主參數,這是不可能的argv[0]
是要轉換成整數的東西。 argv[0]
通常包含程序的名稱。
您的代碼片段正在聲明循環體的本地數組。你可能想要的是一個在循環體外部定義的數組,並且你想分配給循環體內的單個數組元素。
int arr[argc];
for(i = 1; i < argc; i++)
{
arr[i] = atoi(argv[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;
}
這裏是輸出:
[email protected] ~
$ gcc -Werror -Wall -g -o test test.c
[email protected] ~
$ ./test 3 4 5
arr[0] = 3
arr[1] = 4
arr[2] = 5
解決!謝謝! –
我忘了第一個參數是該程序的名稱。解決了!謝謝! –
非常歡迎。 – jxh