1.我自己写出来是1,答案是1244996,电脑运行是之后答案是6487572,不知道是书上答案是对的还是电脑运行有问题,有点不太理解了。
#include
#include
void fun(int p1,int *p2,int *s)
{ s=(int)malloc(sizeof(int));
*s=*p1+*p2;
free(s);
}
int main()
{
int a=1,b=40,*q=&a;
fun(&a,&b,q);
printf("%d",q);
return 0;
}
你贴的代码里有的地方 * 忘加了可能,结果是1 , 我运行的也是1,因为在整个过程中,a地址的值没变,所以最后还是1
#include<stdio.h>
#include<stdlib.h>
void fun(int *p1,int *p2,int *s)
{
s = (int *)malloc(sizeof(int));
*s = *p1 + *p2;
free(s);
}
int main()
{
int a=1,b=40,*q=&a;
fun(&a,&b,q);
printf("%d", *q);
return 0;
}