「已注销」 2022-03-28 21:07 采纳率: 40%
浏览 11
已结题

为函数的指针形参分配内存空间

#include<stdio.h>
#include<stdlib.h>
void fun(double *p1,double *p2,double *s)
{s=(double *)calloc(1,sizeof(double));
*s=p1+(p2+1);
}
main()
{
double a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s);
printf("%5.2f\n",*s);
}
我理解的是数组名传递给形参指针,开辟新的内存空间地址给指针,然后写入数据
为啥结果是没有改变s指向的内存单元。
啊已经糊掉了,求解😔

  • 写回答

1条回答 默认 最新

  • 「已注销」 2022-03-28 21:53
    关注

    我好像想到了什么,此s非彼s。形参指针s指向的空间变了,实参s还是指向的数组a,是酱紫吗

    评论

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 创建了问题 3月28日