本文介绍了双指针中的内存泄漏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好
我正在使用类似
的结构

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];




这篇关于双指针中的内存泄漏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 18:00