33,317
社区成员
发帖
与我相关
我的任务
分享是不是想说这个函数的堆栈问题?
在fun函数里,return那个值是在栈上,函数返回后,该内存将被析构!所以,p指向是为定义的!
#include"iostream.h"
int *fun(int x)
{
int y = x*x;
return &y;
//问题处在这路,y位于堆栈内存中,用完就释放了
}
void main()
{
int a = 5,*p;
p = fun(a);//这里获得的内存里面的内容已被清楚
cout <<*p <<endl;
cout <<*p <<endl;
}