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

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

Закрытая тема
 
Myth
The Temple
offline
Опыт: 19,141
Активность:
удаление локальной переменной
глупый вопрос: как удалить локальную переменную, после её использования, чтобы память не загружала?
Старый 14.06.2009, 01:24
HTC
Мечта - та же реальность
offline
Опыт: 23,885
Активность:
Myth обнуляй.
Старый 14.06.2009, 01:27
Myth
The Temple
offline
Опыт: 19,141
Активность:
HTC а можешь строчку кода написать) а то я в жассе неахти)
Старый 14.06.2009, 01:28
House MD
I'm not all guys
offline
Опыт: 14,862
Активность:
set <имя локалки> = null
Старый 14.06.2009, 01:31
SRes
1110101000
offline
Опыт: 9,997
Активность:
Переменные типа real, integer нельзя обнулять и впринципе не нужно. Алсо некоторые переменные надо удалять, а потом уже обнулять. К примеру группы, в примерно таком виде,
Код:
local group g = CreateGroup()
DoSomething()
call DestroyGroup( g)
set g = null
Старый 14.06.2009, 03:35
Myth
The Temple
offline
Опыт: 19,141
Активность:
House MD я прописал set n = null, где n типа integer... дак почему-то выдал ошибку: несовпадение типов при присвоении! что может быть причиной?
SRes а вот! прочитал твое сообщение... понятно)
Старый 14.06.2009, 04:14
Артте
Open up your eyes
offline
Опыт: 23,423
Активность:
Myth
ну мб потому, что integer в jass не может принимать значение null?

Артте добавил:
http://xgm.guru/articles.php?name=jass_local_vars вот глянь
не смотрите туда - там написанна бредистика - прим. Адик
тогда сюда http://xgm.guru/articles.php?name=ex_jass - прим. Артте

Отредактировано Артте, 14.06.2009 в 15:03.
Старый 14.06.2009, 10:07
Toadcop

offline
Опыт: 54,313
Активность:
Myth это невозможно =О все остальные ответы в этой теме фейл О_О
Старый 14.06.2009, 14:22
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
тц нагло врет, вар сам очищает память. когда захочет. D:
Старый 14.06.2009, 14:57
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
Переменные типа real, integer нельзя обнулять

что за фелс, следи за тем что пишешь) путаешь определения
Старый 14.06.2009, 15:01
SRes
1110101000
offline
Опыт: 9,997
Активность:
Всмысле ? Ну можно поставить = 0, только смысл ? Именно null поставить нельзя...
Старый 14.06.2009, 15:23
Elf_Stratigo

offline
Опыт: 4,699
Активность:
Код:
function SaveDyingWidget takes nothing returns nothing
    set bj_lastDyingWidget = GetTriggerWidget()
endfunction

D:
Старый 14.06.2009, 15:59
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
Обнулить означает приравнять к нулю, гений -_-
Старый 14.06.2009, 16:05
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
Всмысле ? Ну можно поставить = 0, только смысл ?

наверное для того чтобы обнулить ?
Цитата:
Именно null поставить нельзя...

потомучто null сделан специально для хендлов и прочих указателей, учите матчасть©

ScorpioT1000 добавил:
Цитата:
как удалить локальную переменную, после её использования, чтобы память не загружала?

само определение "локальная переменная" подразумевает, что она удаляется после окончания ее "области жизни" в участке кода
Старый 14.06.2009, 16:42
SRes
1110101000
offline
Опыт: 9,997
Активность:
И почемуже тогда есть утечки, если ты сказал что она "удаляется", тогда ты сам себе противоречишь.
Старый 14.06.2009, 17:50
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
SRes, она остается в памяти со всеми своими параметрами, если ее не обнулить, т.е. не удалить на нее ссылки. Так уже устроен варкрафт.

Имеется ввиду, что ты подменяешь понятие. Удалить != Обнулить.
Ваш К.О.
Старый 14.06.2009, 17:57
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
тц нагло врет

ага
Цитата:
вар сам очищает память

ага
Цитата:
когда захочет. D:

сам врешь, стек чистится в момент выхода из процедуры)

ADOLF добавил:
Цитата:
И почемуже тогда есть утечки, если ты сказал что она "удаляется", тогда ты сам себе противоречишь.

под утечкой подразумевается не локальная переменная, а счетчик ссылок хендл обьекта
Старый 14.06.2009, 18:16
ScorpioT1000
Работаем
offline
Опыт: отключен
SRes, это случай варкрафта с хэндлами, которые нужно приравнивать к null-ю, чтобы освободить ячейку
Старый 14.06.2009, 18:26
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
тц нагло врет
я тупо ответил на вопрос автора =О
пусть мне как то покажет как в джассе можно удалить локальную переменую О_О

Цитата:
потомучто null сделан специально для хендлов и прочих указателей, учите матчасть©
чем хорош тот же си то что все эти крутые фичи ничего больше чем интегер О_О
null==0 и офк 0 писать удобней... так же и с булями и т.д. и т.п. и со стоками. (даётца указатель на первый елемент массива)
Старый 14.06.2009, 18:30
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
пусть мне как то покажет как в джассе можно удалить локальную переменую О_О

return и endfunction (последний как я и говорил подразумевает негласный return) являются инструкциями выхода из процедуры и следовательно удаляет локалки
Старый 14.06.2009, 18:36
Закрытая тема

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

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

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

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



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