关于calloc

发布网友 发布时间:2024-10-23 23:30

我来回答

1个回答

热心网友 时间:2024-10-25 06:20

//貌似这个子函数目的想令主函数的*s 变成a[x] + b[y] x,y 值由主函数调用参数来确定,并令指针移动到b[y+1]
//但实际上实现不了,函数参数都是实参,也就是所有改动均不能影响主函数内的变量
//申请了新的空间,但没释放,也没传给主函数,会有内存泄露问题
void fun(double*p1,double*p2,double*s)
{
s=(double*) calloc (1,sizeof(double));
*s=*p1+*p2++; //新申请的空间存放 *p1+*p2 但这个值随函数结束就丢失了。
}
int main(int argc, char *argv[])
{
double a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s); //这个函数对p1 p2 s没有任何影响
printf("%5.2f\n",*s); //这里的*s还是指向main开始定义时的a[0] ,所以输出就是a[0]
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com