2010-04-14 72 views
0

我有内存泄漏,通过仪器发现,它应该是在这行代码:iPhone内存泄漏使用malloc

indices = malloc(sizeof(indices[0]) * totalQuads * 6); 

这实际上是从一个教程的代码片段,一些东西,我觉得是无泄漏 这么说。现在我认为,错误在别的地方,但我不知道,在哪里。

这是最后引用通告:

5 ColorRun -[EAGLView initWithCoder:] /Users/me/programming/colorrun_3.26/Classes/EAGLView.m:98 
4 ColorRun -[EAGLView initGame] /Users/me/programming/colorrun_3.26/Classes/EAGLView.m:201 
3 ColorRun -[SpriteSheet initWithImageNamed:spriteWidth:spriteHeight:spacing:imageScale:] /Users/me/programming/colorrun_3.26/SpriteSheet.m:68 
2 ColorRun -[Image initWithImage:scale:] /Users/me/programming/colorrun_3.26/Image.m:122 
1 ColorRun -[Image initImpl] /Users/me/programming/colorrun_3.26/Image.m:158 
0 libSystem.B.dylib malloc 

有谁知道如何处理呢?

回答

1

按照程序的逻辑,看看indices变量会发生什么情况。由于您为其分配了一些malloc存储空间,因此需要有相应的free

所以,搞清楚:

  • 如该变量被释放
  • 当这样应该发生
  • 请问有什么条件时,它不会发生? (例如,早退出功能由于错误)
0

可能要还仔细检查的sizeof(索引[0]),以确保其为您所期望的数量...