【求助】关于jass清除局部
魔兽地图编辑器吧
全部回复
仅看楼主
level 3
uranusory 楼主
菜鸟一个 有个问题
最近道听途说了一个叫“删点”的词 貌似有关局部变量
问下 jass的局部变量是怎么工作的?是在调用函数时生成,函数调用完自动释放吗?
那为啥还要删点呢?泄露又是指什么?有哪些局部变量需要清除?
2010年10月16日 14点10分 1
level 10
你要把要释放的局部变量 理解成 局部指针变量
释放的仅仅是 指针本身
指针的内部哈希表索引 和 指针所指的内容 都没有释放
详细的可以参考 C语言的 一些地址操作函数malloc free等
所以要排泄 也就是清除不用的局部 handle类型变量
2010年10月16日 14点10分 2
明白了
2013年08月02日 12点08分
回复 frank630520 :自重
2013年08月02日 12点08分
回复 frank630520 :我去……[啊!] 求不翻黑历史啊……
2013年08月02日 12点08分
回复 AS_HuyW :??
2013年08月02日 12点08分
level 10
没说清楚 补充如下:
函数结束 释放的 只有指针 本身
2010年10月16日 14点10分 3
吧务
level 14
内存就像储物箱 当你用变量储存一个点的时候 我在这个储物箱里面塞入了这个点的数据 然后在箱子外面贴了张纸条 说明这个箱子里面储存的是哪个点 当你拿这个变量储存另一个点的时候 它并不是把箱子打开 把原来的数据删掉换新的 而是重新搬过来一个箱子 往里面塞入新的数据 然后把纸条撕下来贴在新的箱子上 久而久之房子里就会堆满箱子
2010年10月16日 14点10分 4
level 3
uranusory 楼主
了解!一提malloc我想起来了 除了int real string bool那几个之外的那些乱七八糟的都是指针是吧~
那能告诉我针对各种类型的 相当于free的函数名吗?
2010年10月16日 15点10分 5
level 3
uranusory 楼主
还有还有 那用GetUnitLoc()得到的点 不保存到变量里 还用删吗?
2010年10月16日 15点10分 6
吧务
level 14
回复:5楼
滚你妹的 还菜鸟呢 我都不知道malloc是什么
2010年10月16日 15点10分 7
level 3
uranusory 楼主
jass是菜鸟好不
malloc是c里的 好歹还是知道
2010年10月16日 15点10分 8
吧务
level 14
好吧 我是T党 不会T 建议你下一个好点的UI 触发器下面会标注这个功能会创建点/单位组什么的 这时候就要用变量记录好然后准备排泄了
2010年10月16日 15点10分 9
level 3
uranusory 楼主
这样好了 能告诉我用来释放各种变量对应内存空间的函数吗?
刚baidu翻到俩 一个是DestroyGroup() 一个是RemoveLocation() 这俩对么
2010年10月16日 15点10分 10
level 10
locaation:RemoveLocation(whichlocation)
group:DestroyGroup(whichgroup)
force:DestroyForce(whichforce)
effect:DestroyEffect(whicheffect)
Timer:DestroyTimer(whichtimer)
Trigger:DestroyTrigger(whichtrigger)
texttag:DestroyTexttag(whichtexttag)
以上是最常用的
2010年10月16日 15点10分 11
level 3
uranusory 楼主
谢谢谢谢谢!太谢谢了
2010年10月16日 15点10分 12
level 3
uranusory 楼主
对了 还有刚才6l的问题 没保存在变量里的 比如GetUnitLoc()直接做某个函数的形参,这种状况就不用管了是吧
2010年10月16日 15点10分 13
level 10
GetUnitLoc()得到的点 不计入变量 我就不知道了 曾经测试过 自动分配内存号 是不会往前跳的 但是 不知道泄露不泄露
2010年10月16日 15点10分 14
level 3
uranusory 楼主
诶 我真T伪J的本性暴露了 那个啥
用T里面的单位组选取指令造出来的临时单位组需要处理吗
2010年10月16日 16点10分 15
1