XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Необходимость указать размер массива
Как можете видеть на скрине, компилятор ругается на меня потому, что я не указал размер массива..Вся фигня в том, что я сам не знаю какого он должен быть размера, а malloc и realloc как скажем в С тут нету (хотя могу и ошибаться, ибо CJass мне не нравиться и я в него не углублялся). Но да ладно, дело в том, что чуть выше в коде я объявляю глобальный массив и не указываю его размер и при этом никаких проблем нету..Впринципе я склоняюсь к тому, что это из-за попытки объявить массив внутри структуры, но имхо - не знаю. Будьте добры, объясните в чем проблема..
Старый 20.06.2010, 09:06
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
из-за попытки объявить массив внутри структуры
да из-за этого; укажи максимальный
Старый 20.06.2010, 09:28
Doc

offline
Опыт: 63,163
Активность:
Vampirrr, ну так напиши допустим unit array a[10]. Учитывай то, сколько ты будешь использовать. Это сделано потому что там не совсем массив...
Старый 20.06.2010, 11:24
SRes
1110101000
offline
Опыт: 9,997
Активность:
Vampirrr, Конечно malloc\free нету, джасс даже примерно не может это поддерживать.
Проблема в том что ты забыл о том что в джассе структуры - параллельные массивы, а массивы внутри параллельных массивов... В общем там "выделяется" определенное место "клеточек" в параллельном массиве под иллюзию массива внутри структуры, поэтому нужен размер, иначе не знаем сколько выделять -> fail.
Старый 20.06.2010, 11:56
agentex

offline
Опыт: 34,834
Активность:
а malloc и realloc как скажем в С тут нету (хотя могу и ошибаться, ибо CJass мне не нравиться и я в > него не углублялся)
смеешься чтоли? все аллоки это функции динамического выделения памяти в рантайме. в В С жассы компилятся в джас код при сохранении, о чем может быть речь тт
естественно нужно указывать размер массива чтобы парсер увидел на сколько делить 8192. т.е. укажешь размер [2] - кол-во допустимых структур уменьшится до 4096 и т.д. (в одной половине будут храниться значения 0 элемента в другой 1)

Отредактировано agentex, 20.06.2010 в 13:01.
Старый 20.06.2010, 12:55
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
SRes:
Проблема в том что ты забыл о том что в джассе структуры - параллельные массивы
знаю и помню..я думал что он выделяет автоматом, по максимуму и потом просто использует то, что ему надо, как в обычных массивах)
В общем всем спасибо большое, надеюсь больше 300 юнитов на игрока у меня не станет)
Старый 20.06.2010, 17:18
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 03:33.