如果没有存储函数返回的指针会发生什么?

Vis*_*rma 4 c++

有一个函数返回一个指针(任何类型),如果我在调用函数时没有存储指针,会发生什么?在这种情况下,函数是否仍会返回指针?如果是,那么会有内存泄漏,因为我没有释放分配的内存吗?

以下面的代码为例:

int * testfunc()
{
int * a=new int();
return(a);
}

int main()
{
testfunc();
return(0);
}
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 7

绝对会有内存泄漏.你需要的所有呼叫平衡,以newdelete在返回的指针.

C++为您提供了一些帮助您管理的课程delete:请参阅std::unique_ptr.从本质上讲,调用的析构函数通常非常有用.std::unique_ptrdelete