我正在尝试在输入字符后使用 realloc 将元素添加到数组中。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, j, k;
int a = 1;
int* array = (int*) malloc(sizeof(int) * a);
int* temp;
for(i = 0;;i++)
{
scanf("%d", &j);
temp = realloc(array, (a + 1) * sizeof(int));
temp[i] = j;
if(getchar())
break;
}
for(k=0; k <= a; k++)
{
printf("%d", temp[k]);
}
}
当我运行这个小程序时,如果我输入例如:2 3 4,它会显示我:20; 我知道内存没有正确分配,但我无法弄清楚问题所在。提前致谢。