Собственно, в этом и заключается весь вопрос. Как узнать длину массива на GUI? Заранее спасибо.

SirDragdord, заполнено чем? Ячейки массива всегда чем-то заполнены, изначально нулями.

Самый просто вариант: пройтись по массиву циклом.
Вариант получше: завести переменную counter. При присвоении чего-нибудь в свободную ячейку массива увеличивать counter на 1, при переприсвоении ничего не делать.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
Нельзя, когда заносите новые данные просто сохраняйте новую длину в другой переменной. Также учитывайте, что максимальный размер массива для патча 1.29+ = 32768, для 1.29- = 8192.
28
Длина массива в WC3 (в JASS) всегда фиксированная. До патча 1.29 его размер 8192 (ячейки с 0 по 8191 включительно). В 1.29+ размер в 4 раза больше.

"Размер", что устанавливается в настройке переменной, определяет, скольким ячейкам будет присвоено указанное начальное значение. Если ты установил размер на Х, начальное значение на A, то ячейкам 0, ..., Х будет присвоено A.
21
PT153, там вроде сперва создаётся 1024 ячеек, если они все полносьб заполнятся, то выделяются еще 1024 и так до 8192.
9
PT153:
Длина массива в WC3 (в JASS) всегда фиксированная. До 1.29 его размер 8192 (ячейки с 0 по 8191 включительно). В 1.29+ размер в 4 раза больше.

"Размер", что устанавливается в настройке переменной, определяет, скольким ячейкам будет присвоено указанное начальное значение. Если ты установил размер на Х, начальное значение на A, то ячейкам 0, ..., Х будет присвоено A.
Как я понял, я не совсем корректно задал вопрос. Скорее он должен звучать так: Как узнать сколько ячеек массива уже заполнено?
28
SirDragdord, заполнено чем? Ячейки массива всегда чем-то заполнены, изначально нулями.

Самый просто вариант: пройтись по массиву циклом.
Вариант получше: завести переменную counter. При присвоении чего-нибудь в свободную ячейку массива увеличивать counter на 1, при переприсвоении ничего не делать.
Принятый ответ
9
PT153:
SirDragdord, заполнено чем? Ячейки массива всегда чем-то заполнены, изначально нулями.

Самый просто вариант: пройтись по массиву циклом.
Вариант получше: завести переменную counter. При присвоении чего-нибудь в свободную ячейку массива увеличивать counter на 1, при переприсвоении ничего не делать.
Спасибо!
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.