Free и Malloc в цикле - правильный путь к свободной памяти? - PullRequest
3 голосов
/ 13 декабря 2011

У меня есть цикл ниже (код упрощен):

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

Мой вопрос: как мне правильно освободить испорченную память?

self.array [y] .numbers является структурой языка Си.

Могу ли я просто положить free (массив) в методе dealloc?

Спасибо.

1 Ответ

2 голосов
/ 14 декабря 2011

Вы должны передать указатель, возвращенный malloc на free.

Итак, если вы malloc собрали весь массив структур за один цикл, вы можете (и должны) free также и все это.

Если вы malloc редактировали каждую структуру отдельно, вы также должны free каждая.

...