Всех приветствую. Возник такой вопрос. При создании одной занятной системы, связанной с хэш-таблицей, при постоянном использовании функции с конструкцией возникает выделение памяти, доходящее до предела и выбивает вар. Привожу часть кода, который вызывает сомнения:
}elseif GetHandleId(LoadUnitHandle(table,parentKey,childKey) > 0){
return UNIT_STR
}elseif ..
Пояснения, зачем и как это работает: позволяет определить тип переменной, сохраненной в конкретной ячейке хэш-таблицы (помогает при debag'е), но память все же выделяется, что быть не должно. Как с этим бороться?
P.S.: я знаю, хэш-таблицы - зло, но все же мне нравится их использовать.
P.S.: я знаю, хэш-таблицы - зло, но все же мне нравится их использовать.
Принятый ответ
MultiboardGetItem создает игровой объект-ячейку, MultiboardReleaseItem разбивает её обратно. Если таблица навсегда. то выгоднее хранить объекты в массиве, чтобы не терять время на постоянные Get-Release + это позволяет в дальнейшем асинхронно менять содержимое ячеек, что невозможно, если использовать функции.
Ну а кто жрет память, моешь с помощью этой тулзы глянуть (может не запускаться, у меня работает) - кинуть в корень варика и запустить при работающей игре
Ну а кто жрет память, моешь с помощью этой тулзы глянуть (может не запускаться, у меня работает) - кинуть в корень варика и запустить при работающей игре
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Пушистый
лично меня в твоём коде смущают скобки
а именно отсутствие закрывающей скобки
Отредактирован Пушистый
Тип string в JASS это хендл из таблицы строк, туда попадает все, по осторожнее со строками.
Отредактирован Пушистый
Был вариант выводить числа, но все равно тогда приходится применять I2S, что опять дает строку.