关于C语言realloc的有关问题

关于C语言realloc的问题
#define STACKSIZE sizeof(int)
int main()
{
int a,b,num=0;
int *result = (int*)malloc(sizeof(int));
scanf("%d %d",&a,&b);
while(a!=0||b!=0){
*result = a+b;
scanf("%d %d",&a,&b);
num++;
result=(int*)realloc(result,(sizeof(int)+STACKSIZE));
result++;
}
while(num!=0)
{
printf("%d\n",*(result-num));
num--;
}
我想完成的功能是从控制台输入两个数的相加,要求是输入到0 0的时候才会显示出之前输入的所有组数的和。如下:
input:
9 2
2 5
0 0
output:
11
7
但是在result=(int*)realloc(result,(sizeof(int)+STACKSIZE))这个地方总是错误,我是想输入一组值分配一个空间的。求大神解答。
------解决思路----------------------
引用:
搞懂了,不过C的内存指针问题有点复杂,我想问一下,为什么我先用malloc分配一部分内存,再用realloc追加内存就不行呢?记得大学教材里的代码结构就是如此。

不是不可以,是你自己的在result++的时候把指针搞乱了……还有用realloc的时候最好进行错误判断,可能会分配失败……