有一个函数返回一个指针(任何类型),如果我在调用函数时没有存储指针,会发生什么?在这种情况下,函数是否仍会返回指针?如果是,那么会有内存泄漏,因为我没有释放分配的内存吗?
以下面的代码为例:
int * testfunc()
{
int * a=new int();
return(a);
}
int main()
{
testfunc();
return(0);
}
Run Code Online (Sandbox Code Playgroud)
绝对会有内存泄漏.你需要的所有呼叫平衡,以new用delete在返回的指针.
C++为您提供了一些帮助您管理的课程delete:请参阅std::unique_ptr.从本质上讲,调用的析构函数通常非常有用.std::unique_ptrdelete