Максимальный размер массива в объективе C на iPhone? - PullRequest
1 голос
/ 07 ноября 2010

У меня ОЧЕНЬ большой массив (96 000 элементов типа GLfloat). Ранее было 24 000 элементов, пока я не сделал пару изменений. Теперь у меня крушение. Я еще не сделал много для его отладки, но когда я заметил, насколько смехотворно велик один из моих массивов, я подумал, что это стоит посмотреть Итак, мой единственный вопрос: слишком ли 96 000 элементов (или 384 000 байт) для одного массива?

Ответы [ 3 ]

2 голосов
/ 07 ноября 2010

Это должно быть хорошо в куче, но вы должны избегать выделения такого размера в стеке.Так что malloc/free или new[]/delete[] - это то, что вы должны использовать для создания и уничтожения массива такого размера.

Если у устройства мало памяти, вы можете ожидать, что запросы на большие объемы памяти будут иногда возвращать NULL.Существуют приложения (такие как обработка фотографий / изображений), которые запрашивают выделение в десятках мегабайт - во много раз больше, чем выделение в 384 КиБ.

1 голос
/ 07 ноября 2010

Верхний предел размера массива отсутствует, за исключением объема доступной оперативной памяти на устройстве.

0 голосов
/ 07 ноября 2010

Не думаю, что он слишком большой. Некоторые ресурсы изображений без проблем занимают столько или больше смежного пространства. Например, изображение размером 400x400 пикселей займет около 160 000 * 4 = 640 000 байт памяти. Я думаю, что проблема в другом.

...