【发布时间】:2017-01-04 12:25:10
【问题描述】:
我需要创建一个动态数组并放入五个数字,然后再输入另一个输入,这就是我必须增加数组大小的数量。 当所有输入结束后,我将增加数组大小并将数字放入其中。
一切正常,但免费返回此错误:“free(): invalid next size (fast): 0x00000...”
我认为“扩展”函数内部存在错误
void extend(int *V, int n, int s)
{
int *pt;
pt = realloc(V, n*sizeof(int));
int i;
pt[5]=s;
for(i=6;i<(5+n);i++)
pt[i] = pt[i-1]*2;
}
int main()
{
int *v;
int n,i, sum;
sum = 0;
v = malloc(sizeof(int)*5);
for(i=0;i<5;i++)
{
scanf("%d", &v[i]);
sum+=v[i];
}
scanf("%d", &n);
extend(v,n,sum);
for(i=0;i<(5+n);i++)
printf("%d\n", v[i]);
free(v);
return 0;
}
【问题讨论】:
标签: c arrays function pointers dynamic-arrays