-1
我正在編寫一個簡單的C程序來理解C編程。這裏是我的代碼如下所示:重新分配的值沒有傳遞迴調用函數
#include <stdio.h>
#include <stdlib.h>
void add(int** array, int size, int value)
{
if(!*array)
*array = calloc(4,sizeof(int));
if(size > 3)
{
*array = realloc(*array,6*sizeof(int));
}
*array[size] = value;
}
int main()
{
int* numbers = NULL;
int i;
for(i=0; i<6; i++)
{
add(&numbers,i,i);
}
for(i=0; i<6; i++)
{
printf("%d\n",numbers[i]);
}
return 0;
}
什麼功能添加應該做的是,把給定值在陣列的給定點如果數組不夠大,調整陣列。目前,我得到的是分段錯誤。我試過GDB,看來數組變量沒有得到由add函數設置的值。我不明白爲什麼。請幫忙。
這已被問了很多次。有人請找到一個副本。 – 2501
你需要學習如何更好地使用GDB;變量分配得很好。此外,你甚至不會調用'realloc',因爲它在'size' = 1時崩潰。 –
@ 2501對不起,如果它是重複的。由於我的問題非常具體,因此很難找到答案。 – user5393678