Добавлен Drulia_san
У меня есть свой класс, вот его верхняя часть с членами и конструктором.
Но allocate почему-то всегда возвращает 0...
Почему?
Но allocate почему-то всегда возвращает 0...
Почему?
class PHS_Stack
{
private PlayerHeroSnapshot m_arr[4096];
private int m_size;
private int m_maxSize;
static method create takes int maxSize returns PHS_Stack
PHS_Stack obj = PHS_Stack.allocate();
obj.m_size = 0;
if (maxSize > 4096)
{
obj.m_maxSize = 4096;
GMSG("|cFFFFFF00Warning: |r maxSize of PHS_Stack exceeds 4096! It is set to 4096.");
}
else
{
obj.m_maxSize = maxSize;
}
int i = 0;
while (i < obj.m_maxSize)
{
obj.m_arr[i] = 0;
i++;
}
GMSG("obj==" + I2S(obj));
return obj;
endmethod
Принятый ответ
NazarPunk:
Ну class это для личного удобства у меня продефайнен как struct, сейчас проверю...Не нашёл документации по class, но можете попробоыватьlocal PHS_Stack this = PHS_Stack.allocate();
Не работает, ну как я и думал. смысла называть переменную this в статическом методе 0.
Я понял в чем была проблема. В размере массива.
Да, в классах оказывается лимит на размеры массивов, и если там объявлен слишком большой массив такой класс никогда не будет создан.
Понизил до с 4096 до 1024, создается.
Я понял в чем была проблема. В размере массива.
Да, в классах оказывается лимит на размеры массивов, и если там объявлен слишком большой массив такой класс никогда не будет создан.
Понизил до с 4096 до 1024, создается.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Drulia_san
Я понял в чем была проблема. В размере массива.
Да, в классах оказывается лимит на размеры массивов, и если там объявлен слишком большой массив такой класс никогда не будет создан.
Понизил до с 4096 до 1024, создается.
NazarPunk:
Drulia_san: