有句话不懂,有谁能解释一下
不能返回函数内部new分配的内存的引用。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。例如,被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放,造成memory leak。
这句话不是太懂,有谁能解释一下?最好能写个小程序测试一下.
#include <iostream>
using namespace std;
float & Back()
{
float * fp = new float(5.3f);
return *fp;
}
int main()
{
float & fp1 = Back();//这里赋予一个实际的变量fp1,后我们就可以用fp1来释放这个申请的空间.如果你只是单纯的调用Back()的话,就没办法释放了.
cout<<fp1<<endl;
delete &fp1;
system("pause");
return 0;
}