I'm having trouble cleaning up memory leaks in some code. Here is an example:<br><br>#include <vtkMutableUndirectedGraph.h><br>#include <vtkBoostPrimMinimumSpanningTree.h><br>#include <vtkTree.h><br><br>
#include <iostream><br>#include <string><br><br>int main(int argc, char *argv[])<br>{<br> vtkMutableUndirectedGraph* G = vtkMutableUndirectedGraph::New();<br> <br> //create 3 vertices<br> vtkIdType V1 = G->AddVertex();<br>
<br> vtkBoostPrimMinimumSpanningTree* MinimumSpanningTreeFilter = vtkBoostPrimMinimumSpanningTree::New();<br> MinimumSpanningTreeFilter->SetOriginVertex(V1);<br> MinimumSpanningTreeFilter->SetInput(G);<br> <br>
vtkTree* MinimumSpanningTree = vtkTree::New();<br> MinimumSpanningTree = MinimumSpanningTreeFilter->GetOutput();<br> <br> //cleanup<br> //G->Delete(); //works ok<br> //MinimumSpanningTreeFilter->Delete(); //works ok<br>
MinimumSpanningTree->Delete(); //deleting unknown object: vtkDataObject - segfault<br> <br> return 0;<br>}<br><br>From what I understand, you should call Delete() on everything that you called New() on. That seems to work in most cases (G and MinimumSpanningTreeFilter) in the above example. However, in some cases when I call Delete I get a segfault and a warning from vtkDebugLeaks about deleting an unknown object (as with MinimumSpanningTree in the above example).<br>
<br>Am I misunderstanding when/how to delete these things?<br><br clear="all">Thanks,<br><br>David<br>