推 ronin728: 感覺差不多,其實差很多。 10/16 17:50
→ ronin728: 一個是把Struct放在函數裡面,呼叫的時候是函數Stack的 10/16 17:54
→ ronin728: 一部分。malloc是在Heap上要求使用空間,用完還要歸還 10/16 17:55
→ ronin728: 而且在密集執行下malloc效率不如Stack分配,除非你做了 10/16 17:56
→ CJacky: 所以當function呼叫太多層時可以會overflow而找不到變數嗎 10/16 17:57
→ ronin728: 一個memory pool。把對的寫法用在對的地方,兩者差很多 10/16 17:57
→ ronin728: 你說的呼叫到爆炸是Stackoverflow,通常程式是致直接死 10/16 17:58
→ CJacky: 所以一般狀況還是會使用 stack 分配嗎? 10/16 18:00
→ ronin728: 一般都是用stack分配,函數呼叫到爆炸只有recursion 10/16 18:01
→ ronin728: 很多次的狀況比較容易發生,不然正常是不會 10/16 18:02
→ ronin728: 你也不用怕Stack太肥,32bit的定址空間非常大 10/16 18:03
推 stupid0319: 對啊,寫程式很自由的XD,也可以用EAX,ECX來搞看看 10/16 18:03
→ stupid0319: 剪貼簿,File Mapping,Pipe,mail等等都可以拿來當空間 10/16 18:06
推 mozzan: 可以return 只是return是把 struct copy一份給傳回的變數 10/16 23:18
推 ronin728: 在C不能return的只有區域值的指標跟區域性的陣列 10/17 15:01
→ ronin728: 同moz大大說的,C會把整個struct以副本的方式回傳回去 10/17 15:03