循环中的自由和马洛克 - 正确的自由记忆方式?

时间:2011-12-13 12:19:27

标签: iphone objective-c xcode memory-management malloc

我有以下循环(代码简化):

for (int y = 0; y < 20; y++) {

self.array[y].numbers = [self getNumberData:source objectPass:object];

}

这会调用get NumberData方法。在此代码中,使用malloc方法,例如:

object->item1 = malloc(sizeof(Class) * object->item2);

我的问题是如何正确释放malloced内存?

self.array [y] .numbers是一个C结构。

我可以在dealloc方法中放入free(数组)吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

您必须将malloc返回的指针传递给free

所以,如果你malloc在一个swell foop中编辑了整个结构数组,你也可以(并且必须)free整个事物。

如果你单独malloc编辑了每个结构,那么每个结构也必须free