返回后如何删除对象? C ++

时间:2017-01-01 21:14:16

标签: c++

delete[] File;

printf("[%s][%d] Loaded successfully!\n", FilesList.c_str(), FileSize);

return File;

//delete[] File ?

1 个答案:

答案 0 :(得分:2)

假设您使用“new”运算符创建了“File”,则不希望在返回之前将其删除。这将使调用者保持指向已删除对象的指针。

我认为你的问题确实是这样的,我如何确保在函数和返回中分配的内容最终被释放?

你想要的可能是C ++的std::unique_ptr。使用此方法,您可以在函数中分配堆对象,并将指向对象的指针和对象的所有权传递回调用方。当调用者完成后,unique_ptr将释放与对象关联的内存。