Поток и двумерный массив в объективе C? - PullRequest
0 голосов
/ 26 марта 2010

Эй, ребята, я только начинаю оборачиваться к цели C, и я делаю небольшой проект на Iphone. И я только что столкнулся со странной проблемой. Мне пришлось иметь дело с изображениями в моей программе, поэтому у меня есть много локальных переменных, объявленных как temp [width] [height]. Если я не использую NSThread для обработки изображений, все работает нормально. Однако, если я использую NSThread, он будет давать мне EXC_BAD_ACCESS всякий раз, когда я пытаюсь получить доступ к двумерному массиву, объявленному как temp [widht] [height]. Поэтому я должен выделить память из кучи, чтобы получить двумерный массив. Это решит проблему, но я все еще не понимаю. Моей первой мыслью было бы стек через поток, но все работало нормально с одним потоком. Я просто не понимаю.

1 Ответ

0 голосов
/ 26 марта 2010

Может случиться так, что метод, для которого массив является локальным, завершается до того, как поток завершает работу с массивом, поэтому ваш массив выходит из области видимости, а занятая память используется для чего-то другого. Но ваш поток не знает этого и получает доступ к памяти независимо.

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