作者lmr3796 (Toro)
看板b97902HW
标题[问题] 关於malloc函式
时间Mon Dec 8 02:22:57 2008
其实跟马卡卡讨论过满久的
当下觉得好像有道理,但是回家思索了很久却又想不通
就是
为什麽新增一个node时要用malloc来给他一块记忆体
直接宣告为什麽不可以,我们宣告变数的时候也没这样啊
马卡卡那时似乎是说,宣告变数的时候我们只能宣告一次,不能乱改之类的
然後我就问他了,但是递回的时候如果用了局部变数不也是一直要记忆体吗
那为什麽我们现在不能直接要而得用malloc呢呢
我记得我和马卡卡的讨论结束在:「你也可以用递回做,只是很麻烦」之类的
当下想想似乎觉得也对,但回家後觉得怪怪的
又思索了很久
到底为什麽要用malloc来要一块记忆体呢????
请各位强者们解惑
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.215.168
1F:推 sa072686:宣告在函数里的区域变数,生命周期只到函数结束 12/08 02:28
2F:→ sa072686:因此直接宣告,在函数结束後就会被释放掉, 12/08 02:28
3F:→ sa072686:但malloc()凹来的是永久的,直到被free()为止 12/08 02:29
4F:→ sa072686:所以有种竞赛用较快的方式是宣告一个足够大的阵列 12/08 02:29
5F:→ sa072686:然後需要malloc()时直接去这阵列抓还没被用的元素 12/08 02:30
6F:→ sa072686:宣告在全域就可以了…这样有解答你的疑惑吗? 12/08 02:30
7F:→ lmr3796:但我的疑惑是在为什麽要凹,直接宣告不行吗 12/08 02:31
8F:推 sa072686:可以,但要在全域,不然会随着函数被free掉 12/08 02:33