问一下,在函数fun中传入main中的实参,代码*snew=*s;为什么会使snew指向实参p的地址而不是为s新分配的地址呢?谢谢高人指导
#include<stdio.h>
#include<stdlib.h>
void fun(float *p1,float *p2,float *s,float *snew)
{
printf("location:Fun->s %d\n",s);
s=(float *)malloc(sizeof(float));
printf("location:Fun->s -malloc %d\n",s);
*s=*p1+*p2++;
printf("location:Fun->s -add %d\n",s);
*snew=*s;
printf("location:Fun->snew -copy %d\n",snew);
}
int main()
{
float a[2]={1.1,2.2},b[2]={10.0,20.0};
float *p=a,*pnew=a;
fun(a,b,p,pnew);
printf("Result : \n*p = %5.2f\n*pnew = %5.2f\n",*p,*pnew);
return 0;
}