delete[] File;
printf("[%s][%d] Loaded successfully!\n", FilesList.c_str(), FileSize);
return File;
//delete[] File ?
答案 0 :(得分:2)
假设您使用“new”运算符创建了“File”,则不希望在返回之前将其删除。这将使调用者保持指向已删除对象的指针。
我认为你的问题确实是这样的,我如何确保在函数和返回中分配的内容最终被释放?
你想要的可能是C ++的std::unique_ptr。使用此方法,您可以在函数中分配堆对象,并将指向对象的指针和对象的所有权传递回调用方。当调用者完成后,unique_ptr将释放与对象关联的内存。