массивы структур нуждаются в совете

Я создал массив структур для представления отображаемых данных карты; однако я не проверял это дважды, пока не стало слишком поздно: когда я загружаю новую карту, я получаю либо «исключение нехватки памяти» (если я сначала пытаюсь создать новую структуру массива), либо получаю испорченную карту это потребует много перекодирования, чтобы заставить его работать правильно (если я просто сначала инициализирую большую карту) ... может быть, слишком много.

Итак, теперь мне интересно, есть ли безопасный способ перераспределить массив структур, поскольку данные, когда я это делаю, все равно выбрасываются (т.е. мне не нужно копировать данные, просто измените размер массива и сбросьте новые данные из файла) .

Возможно ли это безопасно? Или я должен просто использовать что-то еще, например массив или список? Что мне здесь нужно, так это скорость индексации и скорость чтения больше всего на свете.


person will    schedule 21.10.2009    source источник
comment
Что значит безопасно? Поскольку вы выбрасываете данные, вы можете быть неосторожны... если только вы не говорите об утечках памяти. Пожалуйста, предоставьте фрагменты кода или объясните более подробно.   -  person Manrico Corazzi    schedule 21.10.2009
comment
Пожалуйста, объясните это немного лучше. Почему вы получаете OOM при выделении массива заранее, а не идентификатор, который вы создаете позже?   -  person Henk Holterman    schedule 21.10.2009


Ответы (1)


Иногда трудно выделить большой и непрерывный блок памяти. Рассмотрите возможность выделения большего количества зубчатых данных. Время доступа будет немного снижено, но вы сможете выделить больше памяти.

Подробнее о зубчатых массивах

person payo    schedule 01.03.2012