黑马程序员技术交流社区
标题:
为什么输出是1.10,求解fun到底发生了什么
[打印本页]
作者:
fenxite
时间:
2015-11-6 00:33
标题:
为什么输出是1.10,求解fun到底发生了什么
#include<stdio.h>
#include<stdlib.h>
void fun(float *p1,float *p2,float *s)
{s=(float *)calloc(1,sizeof(float));
*s=*p1+*p2++;
}
int main()
{float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s);printf("%5.2f\n",*s);
}
为什么输出是1.10,求解fun到底发生了什么
作者:
yanggangcl
时间:
2015-11-6 09:08
因为在fun()函数中使用了alloc,创建的空间是在堆区,函数结束后,堆区的变量释放掉了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2