TBXML iOS解析器中的内存泄漏

问题描述:

我正在使用TBXML进行XML解析和检测内存泄漏的工具。TBXML iOS解析器中的内存泄漏

仪器告诉我有在功能

- (TBXMLAttribute*) nextAvailableAttribute { 
currentAttribute++; 

if (!currentAttributeBuffer) { 
currentAttributeBuffer = calloc(1, sizeof(TBXMLAttributeBuffer)); 
currentAttributeBuffer->attributes = (TBXMLAttribute*)calloc(MAX_ATTRIBUTES,sizeof(TBXMLAttribute)); 
currentAttribute = 0; 
} else if (currentAttribute >= MAX_ATTRIBUTES) { 
currentAttributeBuffer->next = calloc(1, sizeof(TBXMLAttributeBuffer)); 
currentAttributeBuffer->next->previous = currentAttributeBuffer; 
currentAttributeBuffer = currentAttributeBuffer->next; 
currentAttributeBuffer->attributes = (TBXMLAttribute*)calloc(MAX_ATTRIBUTES,sizeof(TBXMLAttribute)); 
currentAttribute = 0; 
} 

return &currentAttributeBuffer->attributes[currentAttribute]; 
} 

内存泄漏在行

currentAttributeBuffer->attributes = (TBXMLAttribute*)calloc(MAX_ATTRIBUTES,sizeof(TBXMLAttribute)); 

是否有任何人之前解决它?

+0

你解决了这个问题吗? – 2012-04-12 06:26:42

+0

@Checkit我真的没花更多时间在debugguig上 – AmineG 2012-04-12 07:59:17

+0

k ...谢谢.. – 2012-04-12 08:48:52

请注意....乐器告诉你哪里最初创建了泄漏的内存,而不是该问题在该行......例如,如果您对返回的属性执行了某些操作并将其泄漏到其他位置,那么乐器将会显示上面的行,创建它的地方,而不是你泄漏它的地方....

calloc是分配内存的C函数。完成后请致电free currentAttributeBuffer;。这将修复内存泄漏。