new, delete, Objective-C ++ и утечки - PullRequest
       0

new, delete, Objective-C ++ и утечки

4 голосов
/ 09 декабря 2011

Я добавляю функциональность к существующему приложению Какао, написанному в основном на Objective-C. Я должен использовать существующий класс c ++ в классе, который я пишу, поэтому новый класс - Objective-C ++. Кроме того, мне пришлось написать метод для класса c ++, который временно использует буфер. Так что мой метод с ++ что-то вроде

(void) myMethod{
   int8_t* bffr = new int8_t[length];
   // use the buffer
   delete [] bffr;
}

Я создаю экземпляр класса c ++ в своем файле .mm и пытаюсь продолжить. Проблема в том, что приложение вылетает. Однако, если я закомментирую delete, приложение не аварийно завершает работу, но Instruments сообщает об утечке, связанной с этим методом. Я полагаю, что управление памятью в Objective-C набирает обороты. Как я могу решить эту проблему-22?

Кстати, я получаю тот же результат, используя malloc и get_tegoti_buffer.

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Вы должны освободить выделенную память и сделать это в нужное время - только после того времени, когда никакой другой код не будет пытаться получить доступ к этому фрагменту памяти.

0 голосов
/ 09 декабря 2011

Вы пытались включить функции отладки памяти в XCode для отслеживания источника сбоя?

(Редактировать схему> Отладка> Управление памятью, отметьте все флажки)

Cheers, Jay

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