0
我需要根據用戶輸入增加2個陣列的長度。我使用下面的代碼。但是輸出與用戶輸入不匹配。在c中動態增加陣列大小
#include<stdio.h>
int main()
{
int i=0, key=0, size[key], time[key];
while (key!=-1)
{
printf("Insert value for size : ");
scanf("%d",&size[i]);
printf("Insert value for time : ");
scanf("%d",&time[i]);
i++;
printf("Run again Press-1 or Exit : ");
scanf("%d",&key);
}
int x=0;
for (x ; x<i ; x++)
{
printf("%d %d\n",size[x],time[x]);
}
return 0;
}
當以下值的用戶輸入
35 4
20 3
40 1
60 7
20 8
然後輸出來這樣
8 4
20 3
40 1
60 7
20 8
如果陣列的長度超過4,時間陣列的最後一個元素將是打印的,第一元件大小數組。 它爲什麼得到這個輸出?
這不是如何工作。如果你想分配一個可調整大小的數組,請查找'realloc()'。 – EOF
你認爲你的代碼的哪一部分是定義這些數組的初始大小,以及這個大小是多少?你認爲什麼部分正在改變這個大小? –
此外,當key爲零時聲明size [key]和time [key],這意味着數組中沒有可用項,它的大小爲零。我希望你的程序崩潰 – JVene