C++ 如何阻止内存泄漏?
我已经将程序内存泄漏缩小到这些动态创建的内容之一。泄漏非常小,不会导致任何问题,但最好进行修复,以下是代码:C++ 如何阻止内存泄漏?,c++,memory-leaks,C++,Memory Leaks,我已经将程序内存泄漏缩小到这些动态创建的内容之一。泄漏非常小,不会导致任何问题,但最好进行修复,以下是代码: //allocate row memory: dynamicNodeArray = new int *[r]; //allocate column memory: for(int i = 0; i < r; i++) { dynamicNodeArray[i] = new int[c]; } //... //allocate memory for nodes (arra
//allocate row memory:
dynamicNodeArray = new int *[r];
//allocate column memory:
for(int i = 0; i < r; i++)
{
dynamicNodeArray[i] = new int[c];
}
//...
//allocate memory for nodes (array of structs):
node* nodes = new node[r*c];
//...
//clean up:
for(int i = 0; i < r; i++)
{
delete dynamicNodeArray[i];
}
delete dynamicNodeArray;
free(nodes);
delete nodes;
//分配行内存:
dynamicondearray=新int*[r];
//分配列内存:
对于(int i=0;i
删除dynamicodearray
应该是delete[]dynamicodearray代码>当您使用new[]
进行分配时
也不要对分配给new()
或new[]
的内容调用free()
,删除dynamicodearray
应该是delete[]dynamicodearray代码>当您使用new[]
进行分配时
另外,永远不要调用free()?(和new[]
应具有相应的delete[]
)要删除数组,请使用delete[]。使用std::vector有什么问题吗?除了拼写错误之外,到底为什么new
分配了空闲的内存?(和new[]
应具有相应的delete[]
)要删除数组,请使用delete[]。使用std::vector有什么问题吗?我按照你的建议做了,我相信至少修复了这里的问题。我按照你的建议做了,我相信至少修复了这里的问题。