我应该删除将持续整个进程生命周期的堆对象吗?
Should I delete heap objects that will last for the life of the process?
如果我在程序执行期间在堆中创建了一些对象;而且我知道所有这些对象将继续被访问,直到 main(); 的最后几行代码;那么不删除堆中的对象是不是弊端呢?这种行为有任何实际危害吗?
这完全取决于您的应用程序的逻辑。如果可能,最好使用堆栈。这样清理是完全自动的,你不需要担心内存泄漏。
如果你确实需要使用堆,然后使用像 shared_ptr 这样的智能指针,这将确保你不会泄漏任何内存(但记得在你不需要时尽快释放它们内存不再存在,否则它们将一直存在到程序完成。
如果您提供更多关于您的程序做什么以及您询问的内存的详细信息,我们可以为您提供更具体的建议。
删除不再使用的对象是一个很好的通用规则。但是,当一个进程退出时,它的所有堆内存都会被释放。
如果我在程序执行期间在堆中创建了一些对象;而且我知道所有这些对象将继续被访问,直到 main(); 的最后几行代码;那么不删除堆中的对象是不是弊端呢?这种行为有任何实际危害吗?
这完全取决于您的应用程序的逻辑。如果可能,最好使用堆栈。这样清理是完全自动的,你不需要担心内存泄漏。
如果你确实需要使用堆,然后使用像 shared_ptr 这样的智能指针,这将确保你不会泄漏任何内存(但记得在你不需要时尽快释放它们内存不再存在,否则它们将一直存在到程序完成。
如果您提供更多关于您的程序做什么以及您询问的内存的详细信息,我们可以为您提供更具体的建议。
删除不再使用的对象是一个很好的通用规则。但是,当一个进程退出时,它的所有堆内存都会被释放。