PDA

Просмотр полной версии : [Вопрос] Как обойти ограничение массива



Bib
08.12.2017, 20:16
В Pawn можно создать массив с максимум 1024 ячейками(приблизительно). Можно ли обойти это ограничение?

ziggi
08.12.2017, 20:52
В Pawn можно создать массив с максимум 1024 ячейками(приблизительно). Можно ли обойти это ограничение?

Откуда эта информация? На сколько я знаю, лимита нет.

Daniel_Cortez
08.12.2017, 21:05
В Pawn можно создать массив с максимум 1024 ячейками(приблизительно).
В худшем случае, если массив локальный, то его размер не должен превышать объём стека (по умолчанию это 16384 байт, 4096 ячеек Pawn). Если же массив глобальный, то здесь размер будет ограничен лишь диапазоном значений, которые способна вместить в себя ячейка - 2'147'483'647 элементов. Вам этого за глаза должно хватить (не факт даже, что эти все лимиты стоит держать в голове).

Если же вам нужен массив без фиксированного размера, то для этого есть специализированные плагины. Могу посоветовать плагин GVar (http://forum.sa-mp.com/showthread.php?t=151076), но лучше всё же выбирать самостоятельно по потребностям (под определённые задачи может понадобиться не массив, а более сложная структура типа списка или таблицы).

Bib
08.12.2017, 21:24
Откуда эта информация? На сколько я знаю, лимита нет.

Упс :facepalm: Правда нет.
Но у меня реально была такая проблема и вылетела ошибка что превышен размер массива. Кода не осталось, попробую восстановить по памяти.


В худшем случае, если массив локальный, то его размер не должен превышать объём стека (по умолчанию это 16384 байт, 4096 ячеек Pawn). Если же массив глобальный, то здесь размер будет ограничен лишь диапазоном значений, которые способна вместить в себя ячейка - 2'147'483'647 элементов. Вам этого за глаза должно хватить (не факт даже, что эти все лимиты стоит держать в голове).

Если же вам нужен массив без фиксированного размера, то для этого есть специализированные плагины. Могу посоветовать плагин GVar (http://forum.sa-mp.com/showthread.php?t=151076), но лучше всё же выбирать самостоятельно по потребностям (под определённые задачи может понадобиться не массив, а более сложная структура типа списка или таблицы).

Ок, спасибо за инфу. Массив был глобальным, странно что вылетела ошибка