Visual c++ 如何释放组件分配的所有内存 我有一个组件来实现C++中的稀疏矩阵,但是在检查它的实现时,一些内存分配没有被正确地分配。我可以访问源代码,但它有点复杂,我不想更改它。对我来说很奇怪,一些简单的函数,如printf和fopen,如deleaker所示,内存泄漏

Visual c++ 如何释放组件分配的所有内存 我有一个组件来实现C++中的稀疏矩阵,但是在检查它的实现时,一些内存分配没有被正确地分配。我可以访问源代码,但它有点复杂,我不想更改它。对我来说很奇怪,一些简单的函数,如printf和fopen,如deleaker所示,内存泄漏,visual-c++,memory-management,memory-leaks,sparse-matrix,Visual C++,Memory Management,Memory Leaks,Sparse Matrix,我有一个问题: 有没有办法释放组件外部分配的所有内存空间 谢谢 这取决于代码。为了释放内存块,您需要分配它的函数返回的指针。您可能无法从外部访问此指针。例如,考虑你的类有这样的函数: void func() { int * ptr = new int[1024]; } 一旦该函数返回,就不可能释放内存,因为new返回的指针丢失 我帮不了你 如果你有两个不同的问题,你应该发布两个问题。否则,你会得到很多答案,回答问题的一部分,而不是另一部分(像我一样)。你也应该考虑接受更多的答案,这给人

我有一个问题:

  • 有没有办法释放组件外部分配的所有内存空间 谢谢

  • 这取决于代码。为了释放内存块,您需要分配它的函数返回的指针。您可能无法从外部访问此指针。例如,考虑你的类有这样的函数:

    void func() {
        int * ptr = new int[1024];
    }
    
    一旦该函数返回,就不可能释放内存,因为
    new
    返回的指针丢失

  • 我帮不了你


  • 如果你有两个不同的问题,你应该发布两个问题。否则,你会得到很多答案,回答问题的一部分,而不是另一部分(像我一样)。你也应该考虑接受更多的答案,这给人们更多的帮助来帮助你。谢谢,我改变了问题,我做了一个简单的改变源代码,在每个分配中,我保存地址,在析构函数中,我释放它们。但是我认为有一些(先进的)方法可以使过程自动化,就像works一样(我认为他们已经改变了新的功能!!)