c++关于生命期的问题
#include<iostream>
using namespace std;
long* fac(int n);
int main()
{
int n;
cout<<"please input a number:";
cin>>n;
long *y=fac(n);
// y=fac(n);
cout<<n<<"!="<<*y<<endl;
return 0;
}
long* fac(int n)
{
long *f;
f=new long;
if(n<0)
{
cout<<"erro!"<<endl;
*f=-1;
}
if(n==0||n==1)
*f=1;
if(n>1)
*f=*(fac(n-1))*n;
return f;
}
这是我今天写的一个程序,我想问 既然函数结束后f指向的内存释放了,那*f的值也应该不在了。y指向f 为什么*y还能正确的输出?