Это безопасный кусок памяти? - PullRequest
0 голосов
/ 25 марта 2011
NSMutableArray *m_res = [NSMutableArray arrayWithCapacity:ticks];
double t = lo_t;
while (t <= hi_t) {
    [m_res addObject:[NSDecimalNumber decimalNumberWithDecimal:
                      [[NSNumber numberWithDouble:t] decimalValue]
                      ]];
    t += delta_t;
}

return [[NSArray arrayWithArray:m_res] retain];

Предполагается вернуть постоянный NSArray, содержащий некоторые значения.Я планирую вызвать релиз на него, когда он больше не нужен.Это нормально или есть какая-то ошибка, потому что когда я вызываю функцию, содержащую этот код, моя программа перестает работать (и это проблема памяти, а не бесконечный цикл).

1 Ответ

0 голосов
/ 25 марта 2011

Код безопасен (т. Е. Не аварийно завершится), но последняя строка неверна. arrayWithArray не делает ничего полезного, а сохранение - это утечка.

Это должно быть

return m_res;

Если у вас возникла ошибка, причина кроется в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...