本文介绍了双指针中的内存泄漏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好
我正在使用类似
的结构
Hello
I am using a structure like
struct abc
{
int x;
int y;
};
struct abcArray
{
int iCount;
abc **test;
};
进一步使用like(内存分配):
Further Use this like(memory allocation):
abcArray xyz;
xyz.test = new abc*;
for(int i = 0 ; i < 10 ; i++)
xyz.test[i] = new xyz;
对于重新分配:
For deallocation:
for(int i = 0 ; i < 10 ; i++)
{
delete[] xyz.test[i];
xyz.test[i] = NULL;
}
当我检查内存泄漏时,它在
上显示泄漏
When I check for memory leaks,it says leak at
xyz.test = new abc*;
有人可以建议我如何分配以避免这种泄漏吗?
Can anybody suggest me how I should deallocate to avoid this leak?
推荐答案
abcArray xyz;
xyz.test = new abc*;
for(int i = 0 ; i < 10 ; i++)
xyz.test[i] = new xyz;
您已经为单个abc
结构分配了一个指针,然后继续访问以下不属于您的9个单元格.您应该像这样分配:
You have allocated a pointer to a single abc
structure and then proceeded to access the following 9 cells which do not belong to you. You should allocate like:
xyz.test = new abc*[10];
这篇关于双指针中的内存泄漏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!