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 ¤tAttributeBuffer->attributes[currentAttribute];
}
内存泄漏在行
currentAttributeBuffer->attributes = (TBXMLAttribute*)calloc(MAX_ATTRIBUTES,sizeof(TBXMLAttribute));
是否有任何人之前解决它?
答
请注意....乐器告诉你哪里最初创建了泄漏的内存,而不是该问题在该行......例如,如果您对返回的属性执行了某些操作并将其泄漏到其他位置,那么乐器将会显示上面的行,创建它的地方,而不是你泄漏它的地方....
答
calloc
是分配内存的C函数。完成后请致电free currentAttributeBuffer;
。这将修复内存泄漏。
你解决了这个问题吗? – 2012-04-12 06:26:42
@Checkit我真的没花更多时间在debugguig上 – AmineG 2012-04-12 07:59:17
k ...谢谢.. – 2012-04-12 08:48:52