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

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

Закрытая тема
 
Awful
Несу добро, юзая зло
offline
Опыт: 824
Активность:
Проблема с памятью
Имеется структура
Код:
struct HighOblast 
{
    public region reg
    public  int lastnum=-1
    public  location array points[150]
    ...методы...
}

переменную этого типа я обьявляю как глобальную:

Код:
globals 
    HighOblast UsedPoints
    HighOblast EnablePoints
    Oblast array loc[80]
    location array NoWork[450]
    int ltNowork=-1
    int lastnum=-1
    int LocType=-1
    int index
    real xGl,yGl
    int howmany=6
    location Nopoint
    HighOblast HighTekObl
endglobals


В определенный момент я выделяю память на ту переменную:
HighTekObl=HighOblast.create() , после чего даже не произвожу с ней никаких действий... Но HighTekObl.lastnum уже далеко не -1..

Что я не так делаю? ступор...
Старый 12.03.2011, 15:45
XOR

offline
Опыт: 38,159
Активность:
варкрафт не настолько рандомен, значит ты где то делаешь что-то, связанное с lastnum, давай весь код
public location array points[150]
0_0
Старый 12.03.2011, 16:13
DioD

offline
Опыт: 45,134
Активность:
зачем ты создаёшь по 150 массивов точек?
Старый 12.03.2011, 16:29
Doc

offline
Опыт: 63,163
Активность:
Это не 150 массивов.
Старый 12.03.2011, 20:27
Doc

offline
Опыт: 63,163
Активность:
Hanabishi, facepalm, может почитаешь мануал или посмотришь war3map.j? Это массив, разделенный "перегородками" по 150.
Старый 12.03.2011, 21:16
DioD

offline
Опыт: 45,134
Активность:
это именно 150 массивов, так как основная структура не ограничена на 8190\150 инстансов.
Старый 12.03.2011, 23:11
Awful
Несу добро, юзая зло
offline
Опыт: 824
Активность:
DioD,
Вообще то - это один массив точек. Если не определять в квадратных скобках его длину - компилятор ругается. Видимо потому, что на структуру всегда выделяется определенный размер памяти. Если нет, то как тогда определить нужный мне массив?
XimikS, в том то и дело, что я ничего не делаю именно с lastnum этой переменной, поэтому и странно. Такое может произойти (имхо), если чему-то из другой области не хватает памяти и значение попросту затирается. Возможно опять же из за 150 Массивов? В общем жду разъяснений :)
Старый 13.03.2011, 10:13
Elf_Stratigo

offline
Опыт: 4,699
Активность:
Awful, вытаскиваешь из карты war3map.j и смотришь что пишет в lastnum
Старый 13.03.2011, 11:13
Awful
Несу добро, юзая зло
offline
Опыт: 824
Активность:
Всем спасибо, я вроде разобрался. Принципы ООП все же рулят, поменял у всех членов public на private, написал методы доступа и вроде пока работает... Я рад :)
Старый 13.03.2011, 13:40
Закрытая тема

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

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

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

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



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