Mar*_*ark 0 c++ memory-leaks memory-management
如何从漏洞本身返回的函数中修复内存泄漏?
例如,我创建一个char* returnMe = new char[24324];returnMe,最终从函数返回.你如何解释这个内存泄漏?一旦它被退回,你怎么摧毁它?我有一些内存管理规则,在内存泄漏上抛出运行时错误来阻止它,所以我不能忽略它.
Orrr我是一个傻瓜,这不是泄漏,暗示泄漏在其他地方?
pax*_*blo 13
如果你退回它并不是泄漏(好吧,这不是你的泄漏).
您需要考虑资源所有权.如果从函数返回已分配的缓冲区,则函数的调用者现在负责它.API应该明确表示它们在完成后需要被释放.
无论是自己释放它还是将它传递给你的另一个函数来释放它(封装以防止需要完成而不仅仅是释放内存)是API的另一个问题.