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有什么问题吗?我按照你的建议做了,我相信至少修复了这里的问题。我按照你的建议做了,我相信至少修复了这里的问题。